JUST DO IT ~

          我只想當個程序員

          gcc 動態庫 R_X86_64_32 against `a local symbol' -fPIC

           

          RiskUnit0001.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
          obj/Debug/src/RiskUnit0001/RiskUnit0001.o: could not read symbols: Bad value

           

          為什么需要

           

          解決辦法編譯器已經提示了:recompile with -fPIC
          但是我們應該重新編譯誰帶上這個參數呢?經過我幾番折騰,發現如下情況:
          1、編譯.o文件的時候,沒有加參數-fPIC,這問題個在gcc version 3.4.6版本沒有發生,可能那個編譯器默認都給加上吧。
          2、當前程序中有用到某個靜態庫,那個靜態庫編譯.o文件的時候沒有加上-fPIC(靜態庫其實就是.o文件打包)。補充一點:我發現手寫Makefile時即使不加-fPIC也沒有這個問題,這一點很郁悶,這個只在用automake工具編譯出.a文件時才出現過。
          知道原因了,解決辦法自然有了,保證你編譯.o文件的時候,都加上-fPIC,這樣你才能編譯出動態庫來。

           

          引用

          http://hi.baidu.com/duizhe_memory/item/c4ccbb0831a5998d3d42e212

          posted on 2014-04-18 11:15 小高 閱讀(331) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2014年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(352)

          收藏夾(19)

          關注的blog

          手冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 江达县| 洛扎县| 广饶县| 平远县| 怀化市| 池州市| 伊金霍洛旗| 泾源县| 浮梁县| 竹溪县| 苍溪县| 佛坪县| 乌鲁木齐县| 迁西县| 客服| 白银市| 昭苏县| 镇原县| 寻甸| 普兰县| 邹平县| 青田县| 临夏县| 利川市| 辽源市| 财经| 三亚市| 大田县| 旬邑县| 福清市| 清水县| 兴城市| 津市市| 米泉市| 武宁县| 星子县| 筠连县| 长宁县| 福贡县| 麟游县| 本溪|