5

我正在尝试与我的 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

如何解决此错误?

4

1 回答 1

6

/usr/lib/gcc/i486-linux-gnu/4.4.3/crtbegin.o 中的隐藏符号“__dso_handle”被 DSO 引用

大概libprint.so是引用DSO。您可以通过以下方式确认:

nm ./libprint.so | grep __dso_handle

如果这产生了U __dso_handle输出,那么您libprint.so的构建不正确(很可能您曾经ld -shared链接它。不要这样做,使用编译器驱动程序,例如g++ -shared ...)。

于 2013-07-01T04:49:16.673 回答