您的位置:首页 > 其它

g++生成共享库之参数fPIC

2016-06-18 14:30 246 查看
原问题:

       我的程序的目录结构是:

       ./speak

       |--------./inc/

                  |-----*.h

       |--------./src/

                  |-----*.cpp

      生成共享库时遇到的问题:

      $g++ -c -I ../inc *.cpp

      $g++ -shared -o ../lib/libspeak.so.0.1 *.o

       /usr/bin/ld: say_goodby.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

       say_goodby.o: could not read symbols: Bad value

       collect2: error: ld returned 1 exit status

     解决方法一:

     $g++ -c -fPIC -I ../inc *.cpp

     $g++ -fPIC -shared -o ../lib/libspeak.so.0.1 *.o

     解决方法二:

     $g++ -fPIC -I ../inc  *.cpp -shared -o ../lib/libspeak.so.0.1

     注意:-fPIC表明使用地址无关代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  g++ 共享库 fPIC