簡體   English   中英

ld鏈接器腳本錯誤

[英]ld linker script error

我目前正在開發的項目使用了一堆與源代碼捆綁在一起的動態庫。 有一個lib子集,其名稱如下:

對於給定的lib libABC,有四個文件:

libABC.so

libABC.so.4

libABC.so.4.5

libABC.so.4.5.0

它們是菊花鏈式的,如下所示:

第一個文件libABC.so包含以下內容:

link libABC.so.4

而下一個文件libABC.so.4包含以下內容:

link libABC.so.4.5

等到實際的lib文件,libABC.so.4.5.0。

我知道這種東西應該使用符號鏈接來完成,但我們無法改變它,這是一個商業項目。 因此,鏈接器對此感到窒息!

/usr/bin/ld: path/to/the/packaged/libs/libABC.so:unrecognized file format, treating as linker script

(它實際上是,嘿)

/usr/bin/ld: path/to/the/packaged/libs/libABC.so:1:syntax error

現在我似乎無法找到有關GNU ld鏈接器腳本命令“link”的任何信息或對GNU ld鏈接器腳本命令的任何完整引用。

那可能是什么?

我今天自己發現了這個問題,發生的事情是當您在Windows上使用SVN(例如TortoiseSVN)進行結帳時,Linux符號鏈接被轉換為文本文件。

然后,在構建過程中,ld正在接收文本文件而不是將導致具體文件的符號鏈接。

解決方案:Linux機器上的svn checkout。

GNU ld手冊中描述了鏈接描述文件格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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