share.txt-共享库

>gcc -g -c -fPIC -Wall sources
>gcc -g -shared -o xxx.so objects

>gcc -g -fPIC -Wall sources -shared -o xxx.so

>nm object | grep _GLOBAL_OFFSET_TABLE_                       #位置独立的代码,确定一个目标在编译的时候是否使用了-fPIC选项,_GLOBAL_OFFSET_TABLE_.
>readelf -s object|grep _GLOBAL_OFFSET_TABLE_

>objdump --all-headers xxx.so|grep TEXTREL                    #如果产生了输出,那么指定的共享库中至少存在一个目标模块在编译时没有指定-fPIC选项.
>readelf -d xxx.so|grep TEXTREL

>gcc -g -Wall -o prog sources xxx.so                          #prog 的运行需要指定 LD_LIBRARY_PATH 环境变量.

>gcc -g -c -fPIC -Wall sources                               #共享库的soname,Wl,-soname选项是传给连接器的指令以将共享库libxxx.so的soname设置为libbar.so.
>gcc -g -shared -Wl,-soname,libbar.so -o libxxx.so objects   

>objdump -p libxxx.so|grep SONAME                            #确定共享库的是否包含soname.
>readelf -d libxxx.so|grep SONAME

>gcc -g -Wall -o prog sources libxxx.so                      #LD_LIBRARY_PATH=. ./prog : prog,error in load

你可能感兴趣的:(文档,linux)