我一直在尋找一種解決方案來解決我的問題,並獲得一些線索,但我找不到任何一致的解決方案: 我有一個動態庫代碼(libdyna.so ),它使用3個靜態庫(libone.a,libtwo.a,libthree.a)和log4cpp庫的功能。 當我建造它的第一次一切似乎都很正常,我可以使「libdyna.so」,但是當y與我的Java測試程序測試它雖然包裝(JNI封裝正常工作)我得到了很多未定義的引用。動態庫使用靜態庫,出現未定義的符號
然後,我把「-z DEFS」標誌到make文件和大量未定義的引用的出現,我不能重新編譯的動態庫。
我做了「納米」命令與三個靜態庫,並將其導出所有我在DYNA LIB正確使用的功能。但是當我在包含3個靜態庫的'libdyna.so'上創建nm時,我發現了未定義的符號(函數)。
我認爲解決方案必須像添加一些標誌鏈接時,我想提出的動態,但我真的不知道。 任何人都可以幫助我,或者告訴我一些想法?如果需要一些代碼,請讓我知道,我會粘貼在這裏。 非常感謝。
P/d:對不起,我的英語不好。
天啊。我不敢相信你不包括未解決符號的名字!你能找到一個時刻來添加這些嗎?大多數情況下,如果符號已知,這是一個三秒的答案。 – sehe 2011-05-02 18:25:18
您是否還嘗試添加靜態庫?就像,-l/path/libtwo.a和其他兩個類似... – 2011-05-02 18:39:16