use*_*285 5 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
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
DSO引用/usr/lib/gcc/i486-linux-gnu/4.4.3/crtbegin.o中的隐藏符号`__dso_handle'
据推测libprint.so就是引用DSO.你可以确认:
nm ./libprint.so | grep __dso_handle
Run Code Online (Sandbox Code Playgroud)
如果这会产生U __dso_handle输出,那么您的libprint.so构建不正确(很可能是您用来ld -shared链接它.不要这样做,请使用编译器驱动程序,例如g++ -shared ...).
| 归档时间: |
|
| 查看次数: |
8109 次 |
| 最近记录: |