2013-06-30 37 views
3

我想鏈接到我的C++程序中的共享庫。/usr/bin/ld:客戶端:隱藏符號`__dso_handle'

命令我使用:g++ -o client Client.cpp -L. -lprint

以下是錯誤:

/usr/bin/ld: client: hidden symbol `__dso_handle' in /usr/lib/gcc/i486-linux-gnu/4.4.3/crtbegin.o is referenced by DSO 
/usr/bin/ld: final link failed: Nonrepresentable section on output 
collect2: ld returned 1 exit status 

我怎樣才能解決這個問題?

回答

4

hidden symbol `__dso_handle' in /usr/lib/gcc/i486-linux-gnu/4.4.3/crtbegin.o is referenced by DSO

想必libprint.so是參考DSO。你可以確認:

nm ./libprint.so | grep __dso_handle 

如果產生U __dso_handle輸出,您libprint.so建有誤(最可能是你用來ld -shared鏈接它不這樣做,使用編譯器驅動程序,例如g++ -shared ...代替)。

+0

我遇到了與我的程序相同的錯誤。甚至在我做了「g ++ -shared」之後,錯誤仍然存​​在。我想知道是不是因爲我有「-std = C++ 0x」,無論如何都會包含__dso_handle引用? – user1783732

相關問題