cost 246 ms
-fPIC 對不使用 -fPIE -pie 構建的可執行文件有任何影響嗎?

[英]Does -fPIC has any effect on an executable built without -fPIE -pie?

我在 SO 看到了很多問題,詢問為什么不是所有代碼都編譯為 PIC或者為什么我們不能總是使用-fPIC 。 但是,所有答案都沒有解釋當您的對象使用-fPIC編譯但您將它們鏈接到不是PIE(位置無關的可執行文件)的可執行文件時會發生什么。 根據我的理解(使用一些小示例並使用readelf反匯編/檢查 ...

pip 安裝編譯失敗並出現錯誤要求我“使用 -fPIC 重新編譯”

[英]pip install compilation fails with error ask me to "recompile with -fPIC"

我嘗試使用源代碼構建 pycolmap,但出現以下錯誤。 根據谷歌搜索結果,我在 CMAKELISTS.txt 中添加了這些 CXX_FLAGS,但它仍然不起作用。 任何人都知道怎么了? 我想也許我應該清理一些以前的構建文件,但我不知道在運行時該怎么做 ...

使用 -fPIC 編譯后未定義的統計符號

[英]undefined stat symbol after compiling with -fPIC

我在我們的代碼中使用了一個(靜態)外部庫(zmq.a),並且在我們程序的編譯過程中它說 ../libzmq.a(src_libzmd 制作共享對象時;用-fPIC重新編譯但是,如果我使用 -fPIC 編譯庫本身,我們的代碼現在可以編譯,但我在啟動時收到錯誤:“undefined symbol sta ...

gcc 編譯錯誤:/usr/bin/ld: gfx.o: 重定位 R_X86_64_32 against `.rodata' cannot be used when make a PIE object; 使用 -fPIE 重新編譯

[英]gcc compile error: /usr/bin/ld: gfx.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIE

錯誤如下: 當我添加-fPIC或-fPIE時,沒有任何變化。 我知道gfx.o庫可以工作,因為它以前可以工作,並且當我在我的服務器上輸入 ssh 時它仍然可以工作。 制作文件如下: 我嘗試在 makefile 中使用-fPIE和-fPIC 。我還嘗試卸載並重新安裝 gcc 和 binutills,但 ...

在 NDK CPython 編譯上使用 -fPIC 重新編譯

[英]Recompile with -fPIC on NDK CPython compilation

我想用 NDK 編譯 CPython,無論我把 -fPIC 放在 CFLAGS 中,我都會得到 fPIC 錯誤。 ld:錯誤:重定位 R_ARM_REL32 不能用於符號 PyBool_Type; 使用 -fPIC 重新編譯我有帶有 Autoconf 配置腳本和 NDK 的 Python 源。 我 ...

log4cxx 使用 -fPIC 重新編譯

[英]log4cxx recompile with -fPIC

我正在編譯一個使用 log4cxx 庫的共享庫(.so)。 我收到以下錯誤: 你有什么想法嗎? 我應該使用一些特殊選項重新編譯 log4cxx 嗎? ...

libpng.a(pngerror.o):需要針對“stderr”進行動態 R_X86_64_PC32 重定位

[英]libpng.a(pngerror.o): requires dynamic R_X86_64_PC32 reloc against 'stderr'

我在 Ubuntu 20 焦點上,我正在嘗試將Blender 構建為 Python 模塊。 構建說明的最后一步是我遇到問題的地方。 我的建築達到 100%,但隨后失敗並顯示以下輸出: 我試過sudo make bpy -fPIC ,但這會引發另一個錯誤: 我認為-fPIC錯誤是因為我很愚 ...

可能最終在共享庫中的所有內容是否總是需要使用 -fPIC 進行編譯?

[英]Does everything that may end up in a shared library always need to be compiled with -fPIC?

我正在建立一個共享庫。 我只需要一個 function 就可以公開。 共享庫由幾個 object 文件和幾個 static 庫構建而成。 linker 抱怨一切都應該用-fPIC構建。 所有 object 文件和大多數 static 庫都是在沒有此選項的情況下構建的。 這讓我問了幾個問題: 我是 ...

盡管啟用了 POSITION_INDEPENDENT_CODE 標志,但使用 -fPIC 重新編譯時出現錯誤

[英]Getting Error recompile with -fPIC although POSITION_INDEPENDENT_CODE flag is enabled

我正在嘗試通過 cmake 將 afinit_state.a 庫與我的 C++ 項目鏈接。 但是我收到了附加錯誤。 我的 cmake 文件是: 在發布這個問題之前,我已經嘗試了我可以在互聯網上找到的選項。 很多人都說我使用了 set_property(TARGET ${PROJECT_NAME} P ...

重定位 R_X86_64_PC32 在已經使用 fPIC 的情況下創建共享對象時不能使用針對符號的重定位

[英]relocation R_X86_64_PC32 against symbol can not be used when making a shared object when fPIC was already used

我看過很多關於解決這種類型的鏈接器錯誤的帖子,在大多數情況下,人們只是忘記用-fPIC編譯,有時人們在使用內聯函數等方面遇到問題,但這里並非如此。 我正在嘗試使用Pybind11為 python 包裝一個 C++ 庫。 在這個過程中,我想將一些靜態庫(其中一個是newmat11 )鏈接到一個 .so ...

gtkada:使用 -fPIC 重新編譯

[英]gtkada: recompile with -fPIC

(來自 comp.lang.ada 的交叉發布) 我正在遵循 GNAT 示例中的插件方案,使用 GTK。 所以我需要 gtkada,並且為了正確處理它,gtkada_contributions。 我從 Adacore 站點獲取了(二進制)GNAT 和 gtkada 的實際版本(2020)。 我從 ...

object 文件不是 PIC 顯示可重定位?

[英]object file not PIC showing relocatable?

我有一個小庫,我用gcc構建它,沒有-fPIC選項,我認為這意味着生成的 object 文件將不可重定位,但是當我發出file命令時,它顯示可重定位,為什么? 構建命令: ...

2020-07-29 13:33:01   2   294    linux / gcc / fpic  
Linker 錯誤:“針對符號‘xmlFree’重新定位 R_X86_64_PC32 ... 使用 -fPIC 重新編譯”但有問題的庫已經使用 -fPIC 編譯

[英]Linker error: “relocation R_X86_64_PC32 against symbol `xmlFree' … recompile with -fPIC” but offending library was already compiled with -fPIC

我正在嘗試建立一個共享庫。 我的目標是將所有依賴項作為 static 庫拉到一個共享庫中。 我的理解是,這可以通過-Wl,--whole-archive標志來完成。 這是我負責配置共享庫的 CMake 腳本的片段。 我在嘗試編譯時遇到的錯誤(詳細模式已打開)是: 但是,根據這個問題, /usr/lo ...

CMake 添加 fPIC 編譯選項失敗

[英]CMake fails to add fPIC compile option

我在嘗試鏈接傳遞使用 Qt5 的可執行文件時遇到了一些問題。 我已經使用 CMake 和選項CMAKE_POSITION_INDEPENDENT_CODE = ON配置了我的項目,但是在編譯可執行文件時, Qt5 抱怨我應該使用fPIC 。 我在我的主 CMakeLists.txt 文件中啟用了這兩 ...

Cocoa Touch框架不使用與位置無關的代碼嗎?

[英]Do Cocoa Touch frameworks not use position-independent code?

我注意到,當使用otool檢查Mach標頭時,盡管在Xcode中將“ Generate Position-Dependent Executable”和“ Generate Position-Dependent Code”都設置為NO ,但Cocoa Touch框架從未設置PIE標志。 不過,這 ...

fpic和O3優化標志

[英]fpic and O3 optimization flags

我正在嘗試編譯使用libnothing.so的main.c。 這是源代碼: main.c 什么都沒有 什么都沒有 首先,我不像fpic那樣編譯nothing.c: gcc -c nothing.c我將收到此錯誤: /usr/bin/ld: nothing.o: r ...

使用或不使用-fpic

[英]To use or not to use -fpic

我的應用程序需要在運行時加載一個或多個算法,我使用.so。 問題是這些庫不被任何其他進程使用,而是我的應用程序,所以不需要與其他人共享.text部分。 .so的某些部分來自我之前編譯的其他靜態庫。 在這種情況下,我是否仍然必須為靜態文件使用-fpic標志? 編輯 我找到了這 ...

從一個編譯器版本到另一個編譯器版本的符號重定位

[英]Symbol relocation from one compiler version to another

我正在編譯一個靜態庫,我們稱它為 static.a,它稍后由共享庫 shared.so 和最終的可執行二進制文件鏈接(shared.so 僅使用 static.a 中的一些函數,也許稍后可以進一步分裂)。 如果我嘗試使用 gcc 7.4 編譯它,我會收到此鏈接器錯誤: 我決定也嘗試 gcc 9. ...

“沒有位置獨立可執行文件 (PIE) 標志的 ELF 構建”適用於 mips64 架構,但不適用於其他架構

[英]"ELF built without Position Independent Executable (PIE) flag " for mips64 architecture but not for other architectures

我生成了一個共享庫 .so 文件我沒有在 CMakeLists.txt 中使用任何標志 -fpic 但是其中一個工具報告了 mips64 架構的“ELF 沒有位置獨立可執行文件 (PIE) 標志構建”,而不是其他架構。 有人知道 -fpic 在其他架構中是如何處理的,但在 mips64 中沒有嗎 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM