2014-10-27 294 views
2

我有一個基本的Hello World C++程序,我試圖編譯並在cygwin上使用g++運行。該代碼是:g++ helloWorld.cpp -o h導致以下錯誤:對__dso_handle_的未定義引用 - 在cygwin上編譯C++

#include <iostream> 
using namespace std; 

int main() { 

    cout << "Hello world." << endl; 
    return 0; 
} 

與編譯它
/tmp/ccDO1S4J.o:helloWorld.cpp:(.rdata$.refptr.__dso_handle[.refptr.__dso_handle]+0x0): undefined reference to __dso_handle」 collect2:錯誤:LD返回1退出status`

我已經在其他一些讀了線程表明它可能是一個鏈接器問題,單獨調用鏈接器或者輸出詳細信息可能會導致更多線索。

所以,我做到了:
1. g ++ -c helloWorld.cpp -o helloWorld.o(這個工程 - 沒有錯誤)。
2. ld -o h helloWorld.o會導致大量未定義的對__main或std :: cout等錯誤的引用。

我認爲這是一個鏈接問題,我需要鏈接另一個庫。任何關於如何解決這個問題的指針都是最受歡迎的。

回答

0

通過cygwin上的安裝應用程序重新安裝g++工作。