Gcc 在Solaris上构建共享库,但不导出.SUNW\u syminfo
我在x86上使用solaris 11.3,使用GCC4.8.2进行编译 我使用以下参数编译了带有gcc的libpng:Gcc 在Solaris上构建共享库,但不导出.SUNW\u syminfo,gcc,solaris,Gcc,Solaris,我在x86上使用solaris 11.3,使用GCC4.8.2进行编译 我使用以下参数编译了带有gcc的libpng: #Compile flag:# C_FLAGS = -m32 -g -fPIC -Ixxxx -Ixxxx C_DEFINES = -D__GNU__ -Dpng16_EXPORT #Link flag:# /usr/bin/gcc -fPIC -m32 -g -shared -Wl,-hlibpng16.so -o ../xxxx/libpng16.so ...
#Compile flag:#
C_FLAGS = -m32 -g -fPIC -Ixxxx -Ixxxx
C_DEFINES = -D__GNU__ -Dpng16_EXPORT
#Link flag:#
/usr/bin/gcc -fPIC -m32 -g -shared -Wl,-hlibpng16.so -o ../xxxx/libpng16.so ...
编译可以正常进行。当我使用elfdump
命令时,没有要导出的内容
#elfdump -y libpng.so#
like:(elfdump -y libGL.so)
Syminfo Section: .SUNW_syminfo
index flags dynndx boundto symbol
[1] DB <self> glDebugMessageControlARB
[2] DB <self> glAlphaFragmentOp3ATI
[3] DB <self> glColorFragmentOp1ATI
[4] DB <self> glWindowPos2dMESA
[5] DB <self> glGetShaderPrecisionFormat
[6] DB <self> glGetPixelMapusv
[7] DB <self> glNormalP3uiv
没有什么可出口的
#elfdump -y libpng.so#
like:(elfdump -y libGL.so)
Syminfo Section: .SUNW_syminfo
index flags dynndx boundto symbol
[1] DB <self> glDebugMessageControlARB
[2] DB <self> glAlphaFragmentOp3ATI
[3] DB <self> glColorFragmentOp1ATI
[4] DB <self> glWindowPos2dMESA
[5] DB <self> glGetShaderPrecisionFormat
[6] DB <self> glGetPixelMapusv
[7] DB <self> glNormalP3uiv
但是当我使用elfdump
转储其他系统库时。有.SUNW\u syminfo
要导出
#elfdump -y libpng.so#
like:(elfdump -y libGL.so)
Syminfo Section: .SUNW_syminfo
index flags dynndx boundto symbol
[1] DB <self> glDebugMessageControlARB
[2] DB <self> glAlphaFragmentOp3ATI
[3] DB <self> glColorFragmentOp1ATI
[4] DB <self> glWindowPos2dMESA
[5] DB <self> glGetShaderPrecisionFormat
[6] DB <self> glGetPixelMapusv
[7] DB <self> glNormalP3uiv
like:(elfdump-y libGL.so)
符号信息部分:。SUNW\u符号信息
索引标志dynndx BONDTO符号
[1] DB glDebugMessageControlARB
[2] DB glAlphaFragmentOp3ATI
[3] DB glColorFragmentOp1ATI
[4] DB glWindowPos2dMESA
[5] DB glGetShaderPrecisionFormat
[6] DB glGetPixelMapusv
[7] DB GLNORMAP3UIV
为什么我编译的png库没有
.SUNW\u syminfo
信息?如何将compile或link标志调整为gcc
,以获取符号信息。共享库是否工作?是。它工作正常。