當我建立在Linux中我得到了像如何解決'collect2:ld返回1退出狀態'?
qstring.cpp:(.text+0x2c01): undefined reference to `terminate(void)'
collect2: ld returned 1 exit status
如何解決這個問題的錯誤我的源代碼?
當我建立在Linux中我得到了像如何解決'collect2:ld返回1退出狀態'?
qstring.cpp:(.text+0x2c01): undefined reference to `terminate(void)'
collect2: ld returned 1 exit status
如何解決這個問題的錯誤我的源代碼?
您需要找出哪個目標文件或庫terminate
居住並將其包含在您的編譯/鏈接命令中。
如果它是在一個對象或源文件,只需把它給你的gcc
(假設你實際上使用gcc
,如果不是,該方法將可能是相似的)命令,按正常。如果它在庫中,則應查看-L
(庫路徑)和-l
(庫名稱)選項。
void terminate(void) { raise(9); }
terminate
在C++標準庫定義的,所以請確保您連接在,假設你使用GCC編譯器,你應該使用g++
可執行文件來編譯源代碼, 不的gcc
可執行:
g++ source.cc -o output
當作爲g++
執行時,鏈接器自動在C++標準庫鏈接(的libstdC++)爲您服務。如果改爲執行gcc作爲普通gcc
,或者你直接調用鏈接ld
,那麼你需要添加-lstdc++
自己的庫鏈接,例如:
gcc source.cc -o output -lstdc++ # Compile directly from source
ld source1.o source2.o -o output -lstdc++ # Link together object files