/ usr / bin / ld:client:隐藏符号`__dso_handle'

时间:2013-06-30 10:36:34

标签: linux g++ shared-libraries ld

我正在尝试使用我的C ++程序中的共享库链接。

我使用的

命令: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

如何解决此错误?

1 个答案:

答案 0 :(得分:6)

  DSO引用/usr/lib/gcc/i486-linux-gnu/4.4.3/crtbegin.o中的

隐藏符号`__dso_handle'

据推测,libprint.so是引用DSO的。您可以通过以下方式确认:

nm ./libprint.so | grep __dso_handle

如果这会产生U __dso_handle输出,则libprint.so构建错误(很可能是您使用ld -shared来链接它。不要这样做,请使用编译器驱动程序,例如{ {1}}代替)。