fpic

    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

    2熱度

    1回答

    我開發一個程序,將引導其他程序,因此作爲一個結果,我需要保持寄存器傳遞給我的程序,這樣我可以跳躍到應有加載程序之前將其還原。這是一個裸機系統,沒有操作系統,沒有MMU(現在,但目前沒有使用)。 這裏是我的代碼,我只是想知道這是否是正確與否,因爲我沒有胳膊板來測試,我必須儘快提交此, 也是真的,相對於PC商店可以使用唯一來源寄存器的低位寄存器(R0-R7),我認爲這是不能夠訪問在某些指令高寄存器僅拇

    0熱度

    1回答

    正如問題所述,我需要應用這些編譯器/鏈接器設置。我正在使用Code :: Blocks 10.05。我瀏覽了所有的構建設置屏幕。我無法找到應用這些設置的位置。我得到的輸出如下: -------------- Build: Release in 39dll-4-Linux --------------- Linking dynamic library: ./39DLL.so /usr/bin/

    0熱度

    1回答

    當我用下面的命令編譯: g++ -fPIC -o obj/buffer.o buffer.cpp 我得到以下錯誤: /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: In function _start': (.text+0x20): undefined reference to main' 我與-fPIC標

    2熱度

    1回答

    我想用gfortran創建一個共享庫,並將其與libgfortran的靜態版本鏈接以實現可移植性。不幸的是,我沒有設法適當地鏈接不同的對象。我已經找到了一些解決類似問題的帖子,但我無法弄清楚如何解決這個問題。 我的源文件全部使用-fPIC標誌進行編譯。當我嘗試的對象與標誌-shared和-static-libgfortran鏈接,我得到了以下錯誤消息: gfortran -shared -stat

    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

    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 {

    1熱度

    1回答

    位置獨立代碼放置在靜態庫中時會發生什麼? (尤其是在x86-64上) 也就是說:使用PIC生成多個.o文件並將其放置在.a文件中。正常情況下,這個.a被靜態鏈接到最終的可執行文件中。 它似乎工作,但它做到這一點有意義嗎?爲什麼? 什麼是最終地址計算完成? (鏈接時?運行時間?) 謝謝

    22熱度

    2回答

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