2014-01-24 34 views
0

BEGINNER ALERT:我無法弄清爲什麼以下鏈接錯誤?在QT中添加新的源文件夾後鏈接問題

我創建了CH2.CPP一個簡單的項目,建立正確的QT:

TEMPLATE = app 
#CONFIG += console 
#CONFIG -= app_bundle 
#CONFIG -= qt 

SOURCES = $$PWD/src/*.cpp 
SOURCES += $$PWD/lib/CPPLib/*.cpp 
HEADERS = $$PWD/src/*.h 
HEADERS += $$PWD/lib/CPPLib/*.h 

QMAKE_CXXFLAGS += -std=c++11 
#QMAKE_CXXFLAGS += -lpthread 
#QMAKE_LFLAGS += -static 
#QMAKE_LFLAGS += -static-libgcc 
#QMAKE_LFLAGS += -static-libstdc++ 

INCLUDEPATH += $$PWD/lib/CPPLib/ 

#include <iostream> 

using namespace std; 

int main() 
{ 
cout << "Hello World!" << endl; 
return 0; 
} 

這之後我通過修改.pro文件中添加額外的源文件添加到項目之後我在構建項目時收到此錯誤。以下是編譯輸出:

08:10:01: Running steps for project CH2… 
08:10:01: Configuration unchanged, skipping qmake step. 
08:10:01: Starting: "/usr/bin/make" 
/Users/vivekshumi/Qt5.2.0/5.2.0/clang_64/bin/qmake -spec macx-clang CONFIG+=x86_64 -o  Makefile ../CH2/CH2.pro 
WARNING: Failure to find: ../CH2/src/*.h  

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names輪候冊,-syslibroot,/應用/ Xcode中。 app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min = 10.6 -o CH2.app/Contents/MacOS/CH2 ch2.o console.o direction.o error .o filelib.o gevents.o ginteractors.o gmath.o gobjects.o gtimer.o gtypes.o gwindow.o hashmap.o lexicon.o main.o platform.o point.o random.o simpio.o sound.o startup.o strlib.o tokenscanner.o -F/Users/vivekshumi/Qt5.2.0/5.2.0/clang_64/lib -framework QtGui -framework QtCore -framework OpenGL -framework AGL

Undefined symbols for architecture x86_64: 
"Main()", referenced from: 
    Main(int, char**) in main.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [CH2.app/Contents/MacOS/CH2] Error 1 
08:10:01: The process "/usr/bin/make" exited with code 2. 
Error while building/deploying project CH2 (kit: Desktop Qt 5.2.0 clang 64bit) 
When executing step 'Make' 
08:10:01: Elapsed time: 00:00. 
將其加入到這個項目從新的源目錄

Main.cpp的內容:

int Main(int, char *[]) { 
extern int Main(); 
return Main(); 
} 

QMAKE輸出:

23:14:09: Running steps for project CH2... 
23:14:09: Starting: "/Users/vivekshumi/Qt5.2.0/5.2.0/clang_64/bin/qmake"  /Users/vivekshumi/Developer/CH2/CH2.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=declarative_debug CONFIG+=qml_debug 
WARNING: Failure to find: ../CH2/src/*.h 
23:14:09: The process "/Users/vivekshumi/Qt5.2.0/5.2.0/clang_64/bin/qmake" exited normally. 
23:14:09: Elapsed time: 00:00. 
+1

你在哪裏定義int Main()'?什麼是int Main(int,char * [])'? –

+0

@JoachimPileborg我在CH2.cpp中定義了int main()。我將Main.cpp源文件引入到這個項目中,該項目包含int Main(int,char * [])。 – Vivek

+0

一般情況下,當'qmake'報告錯誤時,你不應'make'。另外qmake使用不同的文件通配符語法,你做了什麼像'HEADERS + = $$ files(src/*。h)'? – fasked

回答

0

的鏈接錯誤發生,由於不包括一些$$ PWD/lib/CPPLib作爲CH2.CPP庫中的附加源文件