我正在linux上生成一個共享庫,我正在使用這個xml解析器「mini xml」來解析我的庫的一些xml配置文件。我想要的是不要依賴這個XML解析器,所以我想使用供應商提供的靜態libmxml.a庫,而不是使用libmxml.so,libmxml.so也與libmxml.so一起使用,這樣我的共享庫部署時不依賴於libmxml。我試過以下,但它不起作用。使用靜態庫編譯PIC對象
的gcc -o -fPIC -static myobject.o -c -lmxml myobject.c
但它在警告
鏈接輸入未使用的,因爲鏈接尚未完成
我錯過了什麼?任何幫助,將不勝感激。
Thanks @jilles!我正在做你說的。我研究了其源碼附帶的mini xml的makefile。我發現庫已經被編譯了-fPIC標誌。所以當我用libmxml.a(用-fPIC編譯)編譯我的庫時,當我嘗試使用我的庫運行任何應用程序時,它會得到一些未定義的mxml符號。現在當我複製所有的。o mxml文件到我的目錄的源文件夾並編譯我的庫,包括mxml對象以及我的庫對象,我可以運行一個使用我的庫構建的應用程序,具體取決於libmxml。 –