有一個免費的軟件項目可以構建一些靜態C++庫,然後將它們鏈接起來製作一個二進制文件。我想分開這些庫作爲 .so文件進行動態鏈接(所以其他項目可能會使用 這個lib)。一個庫構建得很好,但是當我嘗試鏈接 時,我得到「未定義的引用」錯誤。靜態與動態庫中的符號分辨率
這些很容易追蹤和修復(在.h文件中引用那些 方法的代碼,但對應的.cc文件不是包含在Makefile編譯命令中的 )。不過,我想知道,爲什麼一般情況下,圖書館只能將 作爲靜態庫鏈接,而不能作爲動態庫鏈接。什麼是 g ++和ld在一個情況下做,但不是另一個?
非常感謝。
未引用對象實際上在靜態庫中生成的位置在哪裏?它是一些其他的靜態庫,一些其他的共享庫,或一些.o文件?什麼是參考,其中一個圖書館? – 2012-02-15 19:16:24