fpic

    22熱度

    2回答

    我試圖在Fedora中安裝使用-fPIC支持的GHC。 我已經抓住了一個源代碼壓縮包,因爲它似乎沒有二進制文件。 在Build.mk我已經改變了快速構建類型 ifeq "$(BuildFlavour)" "quick" SRC_HC_OPTS = -H64m -O0 -fasm -fPIC GhcStage1HcOpts = -O -fasm -fPIC GhcStage2HcOpts

    25熱度

    3回答

    我最近收到了:創建共享目標時 ...對`局部符號」搬遷R_X86_64_32不能使用;使用-fPIC重新編譯 嘗試將程序編譯爲共享庫時發生錯誤。 現在解決這個問題並不困難(用-fPIC重新編譯所有依賴關係),但經過一番研究後發現,這個問題只存在於x86-64平臺上。在32位上,任何依賴於位置的代碼仍然可以通過動態加載程序進行重定位。 最好answer我能找到的是: 86具有的.text遷移的支持(

    12熱度

    2回答

    我製成一塊代碼,由在一個動態庫(lib.c),和主可執行文件(main.c)。 在這兩個文件中,我定義了一個名爲int global的全局變量。 不是很聰明,但它不是問題。 當我編譯動態庫-fPIC選擇似乎強制性: gcc lib.c -fPIC -shared -o lib.so 否則我得到: /usr/bin/ld: /tmp/ccpUvIPj.o: relocation R_X86_64

    1熱度

    1回答

    我想在Linux機器上交叉編譯ImageMagick。工具鏈附帶的libstdC++。a不用fPIC編譯。我想用這個文件代替。然而,libtool不斷鏈接libstdC++。a(作爲整個檔案),我得到了重定位錯誤。我也看到了與其他圖書館相同的問題。有任何想法嗎?

    2熱度

    3回答

    我一直在盯着和谷歌搜索這個,但我看不到我做了什麼。 我在32位機器上有一個工作項目。我剛纔拉庫的64位機(這是原始開發機項目),並試圖建立測試二進制 /usr/bin/ld: error: /usr/lib/libboost_test_exec_monitor-mt.a(unit_test_log.o): requires dynamic R_X86_64_PC32 reloc against '

    3熱度

    1回答

    我一直在試圖找出一些事情要做位置獨立代碼,具體使用gcc與-fpic。 我已經寫了一個函數,用於度量在堆棧上多次傳遞一個指針所花的時間,然後通過傳遞一個副本來執行相同的操作。在我的例子中,我看到的效果只適用於沒有繼承或虛函數的struct或簡單類。 爲什麼使用PIC時指針會變慢(稍微)?爲什麼副本的速度要快很多,因爲沒有PIC呢?我正在編譯-03也。 class basicClass {

    5熱度

    3回答

    據說位置獨立代碼只使用相對位置而不是絕對位置,這是如何在c和程序集中實現的? 讓我們以char test[] = "string";爲例,如何通過相對地址來引用它?

    0熱度

    1回答

    現在我想從 http://root.cern.ch/drupal/content/installing-root-source 安裝可用根包./configure, make後重新編譯;我得到如下錯誤: /usr/bin/ld: /share/lib/python2.6/config/libpython2.6.a(abstract.o): relocation R_X86_64_32 agains

    8熱度

    1回答

    有什麼方法可以檢查目標文件(.o文件)是否啓用PIC?

    2熱度

    1回答

    爲什麼OSX 10.5上的GCC默認打開-fPIC選項?畢竟,它不會產生更大更慢的代碼嗎?