0
是否可以使用鏈接描述文件或映射文件來重命名符號? 我正在嘗試修改一些混合使用C++和Fortran編寫的代碼,以便它可以在Linux上使用多個Fortran編譯器。它目前是爲Solaris Studio編譯器編寫的,並且啓用了區分大小寫選項。我想自動處理Fortran符號名稱中的變體(例如從Makefile中)。使用鏈接描述文件重命名符號
它似乎可以創建別名左右,包含鏈接腳本:
C_Function_ = c_function;
將排序的工作。不幸的是,添加-T選項來引用這個腳本會導致一些其他的行爲變化,並且由於沒有找到libdl.so.2/librt.so.1而導致錯誤。是否有某種我需要包含的默認鏈接器腳本或其他內容?我已經在Linux上嘗試了bfd和gold連接器。
謝謝,省略'-T'解決了這個問題。 「PROVIDE」做什麼?這可以防止它在符號被編譯到共享庫的情況下工作。 – okapi
'PROVIDE()'確保符號只有在所使用的名稱不存在時纔是別名。但不知道爲什麼這會與構建共享庫相沖突。 – mfro