也找不到靜態庫符號我有一個靜態庫liborc-0.4.a,沒有共享庫。我有另一個庫libschroedinger-1.0.a(不共享),它依賴於liborc-0.4.a中的符號。如果我在liborc-0.4.a上運行nm,orc_init等符號顯示爲T(表示它們已定義)。我使用命令行標記-lorc-0.4構建了libschroedinger-1.0.a,以便它看到符號並且沒問題。即使使用-l
但是,現在我有一個小的可執行文件,依賴於libschroedinger-1.0.a。它編譯罰款,但是當我運行鏈接
gcc -lschroedinger-1.0 -lorc-0.4 -o output input.o
它給錯誤,如:
/usr/local/lib/libschroedinger-1.0.a(libschroedinger_1.0_la-schro.o):schro.c:(.text+0x21):
undefined reference to `orc_init'
唯一的要求是所有的庫都在編譯器行中列出了它們自己的依賴關係。所以,如果liba依賴於libb,你可以編寫gcc ... -la -lb。如果存在循環依賴關係,則包含兩次相同的庫。 – 2011-02-15 22:52:03