天天看點

CMake指令target_link_libraries連結庫的順序

target_link_libraries裡庫檔案的順序符合gcc連結順序的規則,即被依賴的庫放在依賴它的庫的後面,比如

target_link_libraries(hello A B.a C.so)
           

在上面的指令中,libA.so可能依賴于libB.a和libC.so,如果順序有錯,連結時會報錯。還有一點,B.a會告訴CMake優先使用靜态連結庫libB.a,C.so會告訴CMake優先使用動态連結庫libC.so,也可直接使用庫檔案的相對路徑或絕對路徑。使用絕對路徑的好處在 于,當依賴的庫被更新時,make的時候也會重新連結。

本文轉載自部落格CMake使用總結的一部分。

繼續閱讀