2013-04-14 73 views
2

我有我在我的代碼中使用的第三方庫的源&對象。該庫附帶說明如何使用CMAKE編譯它以生成一個處理所有依賴關係的make文件。這個make文件創建了兩個連接到我的代碼stuff.cpp中的共享庫libA.so和libB.so。合併兩個共享(.so)庫

我想創建一個單獨的庫libstuff.so,其中包含獨立運行的所有必要信息。有沒有辦法做到這一點,而不需要搞清楚構建libA.so和libB.so的所有依賴關係?我最後的手段是隻通過CMAKE的東西,並通過學習其他項目中的所有依賴關係來構建自己的Makefile,但如果可能的話,我想避免這樣做。 (不是Make的專家,直到現在從未使用過CMake。)

在此先感謝您的幫助。

回答

1

您應該簡單地建立這些libA.solibB.so爲靜態庫(存檔),即libA.alibB.a,然後將它們鏈接到自己的libstuff.so。如果第三方項目的CMakeLists沒有提供將它們構建爲靜態的選項,那麼您必須對其進行修改以自行添加此選項,但只要您不是CMake的完全新手,那就相對容易一些。