2010-04-06 32 views
8

我在我的IDE中有一個項目。我需要製作一個共享庫以用於擴展。我不想使用共享庫設置製作此項目的副本。有沒有辦法使用我現有項目中的目標文件(.o)來構建共享庫?據我所知,我可以爲此寫一個makefile。從現有的目標文件製作共享庫

回答

13

我假設你對某種的Unix和可能使用了GNU工具鏈。在這種情況下,要創建一個合適的共享庫,您需要先使用與位置無關的代碼標誌(-fpic或-fPIC)編譯代碼,然後才能創建共享庫。除非你的.o文件已經被這些標誌編譯,否則你最終不會得到一個工作的共享庫。

如果他們已經編譯爲位置獨立代碼,通常g++ -shared ...應該做的伎倆。

+2

+1我忘了提及目標文件也需要fpic。 – pajton 2010-04-06 09:47:05

+2

@pajton - 猜猜誰被這件事發現了:)。 – 2010-04-06 10:22:25

7

g++ -shared -fPIC -o myshared.so *.o