我需要在我的項目中包含一個二進制程序。我使用objcopy從二進制文件創建一個對象文件。目標文件可以在我的程序中鏈接。 objcopy創建適當的符號來訪問二進制數據。刪除objcopy符號名稱中的路徑
例
objcopy -I binary -O elf32-littlearm --binary-architecture arm D:\Src\data.jpg data.o
所生成的符號是:
_binary_D__Src_data_jpg_end
_binary_D__Src_data_jpg_size
_binary_D__Src_data_jpg_start
的問題是,這些符號包括路徑二進制文件D__Src_
。這可能有助於從不同位置包含二進制文件。但是當我從不同的位置獲取文件時,符號會發生變化,這讓我感到困擾。由於這將在多個構建站上運行,因此無法使用--redefine-sym選項來剝離該路徑。
如何擺脫符號名稱中的路徑?
可能重複(http://stackoverflow.com/questions/15594988/objcopy-prepends-directory-pathname-to-symbol -name) – Daniel
@Daniel你讀過了,*爲什麼*我拒絕了'--redefine-sym'方法? – harper
我同意--redefine-sym不是一個好的解決方案,但我認爲你的問題與OP基本相同。 順便說一句:我正在尋找同一個問題的答案。我目前的解決方法是將文件複製到目錄中,然後執行objcopy然後在Makefile - 醜陋的kludge中複製副本。我想你也可以cd到源目錄並將objcopy的輸出重定向回orignal目錄。 - 仍然是海事組織。 – Daniel