[英]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.