簡體   English   中英

如何強制gcc鏈接靜態庫?

[英]how can i force gcc to link a static library?

我寫了一個靜態庫:libA.a。 我有另一個名為BoBo的應用程序,它在libA.a中未使用任何功能。 我想將libA.o合並到Bo中,然后在Bo運行時可以通過其他方法在libA.a中調用一些東西。

我這樣寫makefile: gcc Bc -o Bo -lA -u symbol_A 這里-u來自GCC手冊:

http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

它建議使用-u強制鏈接未使用的庫,並且symbol_A是libA.a中的某些符號。

但這是行不通的。 鏈接后,我在Bo中找不到任何LibA.a的東西

誰能給我一些提示嗎?

ps我使用的是GCC 3.4.4,在Windows下使用eclipse + CDT,而Bo將在Linux下部署。

來自GCC的-u標志的解釋含義如下:

如果您在源代碼中定義了符號aka變量或函數,請告訴GCC假裝它未定義,因此它將從您鏈接的庫中獲取此類變量或函數的定義。

因此,如果您的Bc沒有在libA.a定義的libA.a-u標志將無濟於事,因為Bc和相同的令牌Bo不需要symbol_A ,因此將被忽略。

暫無
暫無

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

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