2011-04-03 91 views
2

我試圖做一個使用SFML和Box2D的小遊戲。我有以下目錄結構:CMake無法與第三方庫一起工作

/ 
    src/ 
     game/ # my code 
     thirdparty/ # other libraries' code 
      box2d/ 
      sfml/ 
    bin/ 
    etc... 

我試圖設定,讓我可以運行make並Box2D的或者他們需要SFML編譯爲好,因爲我可能會做一些改變的庫。

我試圖把這個在我CMkaeLists.txt:

find_package(Box2D) 
find_package(sfml-window) 
find_package(sfml-graphics) 
find_package(sfml-system) 

以及其他的東西,但我不斷收到錯誤,我不知道如何讓他們周圍。例如:

CMake Error at CMakeLists.txt:20 (find_package): 
    Could not find module Findsfml-window.cmake or a configuration file for 
    package sfml-window. 

    Adjust CMAKE_MODULE_PATH to find Findsfml-window.cmake or set 
    sfml-window_DIR to the directory containing a CMake configuration file for 
    sfml-window. The file will have one of the following names: 

    sfml-windowConfig.cmake 
    sfml-window-config.cmake 

但我找不到任何它列出了存在的文件。

回答

0

find_pacakge命令用於查找在cmake中定義爲模塊或配置的軟件包。可能沒有爲這些庫定義的cmake模塊或配置。因此,如果您想使用find package命令來查找這些庫,那麼您將需要創建一個知道如何找到它們的cmake模塊。根據您的陳述要求,我不認爲這是最簡單的方法。

如果您正在靜態鏈接庫,然後設置一個自定義目標以在每個庫上調用make。將include目錄添加到包含路徑中。使用find_library命令來查找庫。

如果你打算動態鏈接你的庫,然後創建一個自定義的目標來構建和安裝你的庫,只要你把它們安裝在其中一個正常的地方,你應該是好的。

+0

你可能會發佈一個簡單的例子來說明如何做這些事情嗎?謝謝! – sidewinderguy 2011-06-17 01:00:10

相關問題