我幾個星期以來一直在處理這個問題。我知道我可能只是錯過了我不知道的一小步。所以,任何見解都會受到高度讚賞。通過CMake添加外部庫(例如Eigen)
我想添加一些外部庫,並在我的C++項目中使用它們。但似乎無法弄清楚如何。我閱讀了所有關於添加外部庫的文章,但我相信我錯過了一些東西!
比方說,我想添加一個簡單的庫,如Eigen(一個只有標題的庫)。我複製並粘貼包含我項目中子文件夾中所有文件的文件夾。我打電話給子文件夾ThirdPartyLibraries。
INCLUDE_DIRECTORIES("${MAINFOLDER}/ThirdPartyLibraries/eigen")
還有什麼我需要做的嗎?
現在,我們假設我想添加另一個庫,如XGBoost(同時包含頭文件和源文件)。它會如何不同?
我對XGBoost做了類似的事情。我的代碼可能沒有錯誤地構建,但只要我沒有引用庫中的任何函數(基本上只是將庫添加到我的項目而不使用它)。當我嘗試使用任何函數時,我會遇到有關「未解析的外部符號」的錯誤,這使我認爲在添加庫時錯過了某些東西。
我沒有添加任何庫到我的C++代碼。所以,如果你能保持簡單的解釋,那會很棒!
'我得到了關於「未解析的外部符號」的錯誤,這使得我在添加庫時錯失了某些東西。「 - 您錯過了對[target_link_libraries]的調用(https://cmake.org/cmake/help/ V3.0 /命令/ target_link_libraries.html)。 – Tsyvarev
謝謝。這就說得通了。我需要定位的文件是什麼?我無法找到任何.os或.dll文件。 –
'我無法找到任何.os或.dll文件。「 - 因此,您需要爲其出現庫。 – Tsyvarev