我有以下結構的項目:CMake的 - 尋找外部庫
projectName-master/
data/
source/
thirdparty/ (here is placed FindSFML.cmake file)
.gitignore
CMakeLists.txt
README.md
SOURCES.md
TODO.md
我使用的CMake 2.8.11.1(cmake的-GUI)來產生視覺工作室SLN文件。路徑設置是這樣的:
- 這裏是源代碼:E:/ PROJECTNAME主
- 在哪裏建的二進制文件:E:/ PROJECTNAME主/源(1.可我選擇其他目錄或它應該被設置爲包含源文件的目錄:h,cpp等?)
接下來我選擇:配置 - >「指定該項目的生成器= Visual Studio 11,使用默認的本地編譯器」 - >完成
然後我得到一個信息:錯誤在配置過程中,項目文件可能是無效的
CMake的桂包含以下信息:
名稱: CMAKE_INSTALL_PREFIX 值 C:/ Program Files文件(86)/ PROJECTNAME 名稱: SFML_INCLUDE_DIR 價值 SFML_INCLUDE_DIR-NOTFOUND
CMake Error at thirdparty/FindSFML.cmake:165 (message):
Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
SFML_AUDIO_LIBRARY SFML_NETWORK_LIBRARY SFML_GRAPHICS_LIBRARY)
Call Stack (most recent call first):
CMakeLists.txt:63 (find_package)
我下載了SFML並設置了SFML_INCLUDE_DIR(在CMake Gui中):C:/OpenGL/SFML-2.1/include/SFML但我仍然得到這個錯誤。 2.如何解決這個問題?怎麼樣的lib文件和dll的?
EDIT1: 我下載SFML從official site
FindSFML.cmake從項目中不包含任何SFML_ROOT項,但SFML_INCLUDE_DIR看起來是這樣的:
# find the SFML include directory
find_path(SFML_INCLUDE_DIR SFML/Config.hpp
PATH_SUFFIXES include
PATHS
${SFMLDIR}
$ENV{SFMLDIR}
~/Library/Frameworks
/Library/Frameworks
/usr/local/
/usr/
/sw # Fink
/opt/local/ # DarwinPorts
/opt/csw/ # Blastwave
/opt/)
那麼如何設置SFML_ROOT?我需要一些條目(記錄)添加到該文件?它是如何將會是什麼樣子?
EDIT2:新FindSFML.cmake的一部分與路徑SFML(C:/OpenGL/SFML-2.1/)
find_path(SFML_INCLUDE_DIR SFML/Config.hpp
PATH_SUFFIXES include
PATHS
${SFML_ROOT}
$ENV{SFML_ROOT}
C:/OpenGL/SFML-2.1/
~/Library/Frameworks
/Library/Frameworks
/usr/local/
/usr/
/sw # Fink
/opt/local/ # DarwinPorts
/opt/csw/ # Blastwave
/opt/)
請參閱Edit1 – Irbis
我向項目位置添加了一個帶有SFML-Edit2路徑的新FindSFML.cmake。你是這個意思嗎 ? – Irbis
但是如何以及在哪裏定義了SFML_ROOT?我使用CMake-Gui。 – Irbis