SFakeのクロスプラットフォームプラグインを開発したいので、私は最近CMake for Windowsをダウンロードしました。これはhereです。ガイドに従って、私はCMakeLists.txt
,main.cpp
(SFMLコードを持っている)とFindSFML.cmakeというファイルを保持するcmake_modules
というフォルダを持つsfml_test_cmake
(Windows 10)というフォルダを私のDocumentsディレクトリに作成しました。 CMakeLists.txt
は、次のようになります。単純なプロジェクトを作成するときにCMakeがWindowsでSFMLディレクトリを見つけることができない
cmake_minimum_required(VERSION 3.9)
project(SFML-CmakeTest)
set(EXECUTABLE_NAME "sfml_test_cmake")
add_executable(${EXECUTABLE_NAME} main.cpp)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})
find_package(SFML 2.4 REQUIRED system window graphics network audio)
target_link_libraries(${EXECUTABLE_NAME} ${SFML_LIBRARIES})
install(TARGETS ${EXECUTABLE_NAME} DESTINATION bin)
を、次のように簡単なテストプログラムであるmain.cpp
は、なりますSFMLがインストールされている場所については
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow testWindow{ sf::VideoMode{ 640, 480 }, "Test Window", sf::Style::Default };
while (testWindow.isOpen())
{
sf::Event winEvent;
while (testWindow.pollEvent(winEvent))
{
if (winEvent.type == sf::Event::Closed)
{
testWindow.close();
}
}
testWindow.clear();
testWindow.display();
}
}
を、それが、私のDocumentsディレクトリの両方にインストールされていますドライブはC:\
です。最終的にコードをビルドするには、私はcmd.exe
を開き、ビルドのために私のフォルダの中に新しいディレクトリを作成し、cmake ..
を実行しました。私が得たエラーは以下の通りであった。FindSFML.cmake
で見たら
CMake Error at cmake_modules/FindSFML.cmake:357 (message):
Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
SFML_GRAPHICS_LIBRARY SFML_NETWORK_LIBRARY SFML_AUDIO_LIBRARY)
が、私はこれを見つけた:
伝え# define the list of search paths for headers and libraries
set(FIND_SFML_PATHS
${SFML_ROOT}
$ENV{SFML_ROOT}
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw
/opt/local
/opt/csw
/opt)
私の私は、Linux上にあった場合はcmakeのはディレクトリのみで検索されると、それは中だろうSFMLことディレクトリが見つからなかった理由を説明します。この問題を解決するには、私は次のように関数を変更:
# define the list of search paths for headers and libraries
set(FIND_SFML_PATHS
${SFML_ROOT}
$ENV{SFML_ROOT}
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw
/opt/local
/opt/csw
/opt
C:/)
しかし、今回の再構築が私に混乱を残して、同じエラーが発生しました。私は間違って何をしていますか?
ああ待って、nvm、私は[ここ](https://stackoverflow.com/a/7031130/6525260)から入手しました。 –
しかし、今回はビルドされたソリューションで別のエラーが発生しています。私はCMakeを次のように実行しました: 'cmake .. -DCMAKE_PREFIX_PATH = C:/ SFML-2.4.2'。しかし、私がソリューションをビルドすると、「Can not open file SFML/Graphics.hpp':No such file or directory'」というエラーが表示されます。あなたの答えはそれにもかかわらず正しいです。 –
あなたのcmakeに '' '' target_include_directories($ {EXECUTABLE_NAME} $ {SFML_INCUDE_DIR}) ''コマンドを追加するべきです。 –