私は一般的にCMakeとC++の新機能を使用していますので、SFMLのような外部ライブラリをJetbrainのIDE CLionのプロジェクトにインポートしようとしました。SFMLヘッダーファイルをCLionプロジェクトに含めることができません
一般的にCMakeについて学び、特にCMakeとCMakeを連携させて1日を過ごした後、私は最終的にプロジェクトのCMakeを管理してSFMLライブラリファイルを見つけました。
しかし、SFMLヘッダーを含めるために私自身のヘッダーファイルに近づいたとき、ライブラリからヘッダーが見つからないため、問題が発生しました。これは#includeディレクティブを意味します。
私は初心者なので、ここではかなり失われています。それは私がWindows上で働いていると私は唯一のSFMLのオーディオモジュールを探していることは注目に値する
# Set CMake's minimum required version
cmake_minimum_required(VERSION 3.5)
set(CMAKE_VERBOSE_MAKEFILE on)
#Set CMake's project name
project(testproj)
include_directories("${PROJECT_BINARY_DIR}")
#Set CMake's flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#Set source files
set(SOURCE_FILES Animal.cpp Animal.hpp ConstantValues.hpp Enums.hpp Mamal.hpp Mammals/Lion.cpp Mammals/Lion.hpp)
add_library(testproj SHARED ${SOURCE_FILES})
#Set CMake's module path to find the SFML Lib
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Modules/" ${CMAKE_MODULE_PATH})
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "C:\\SFML\\SFML-2.3.2")
#Find the SFML lib
find_package(SFML 2 REQUIRED audio)
if (SFML_FOUND)
include_directories(${SFML_INCLUDE_DIR})
target_link_libraries(testproj ${SFML_LIBRARIES})
endif (SFML_FOUND)
:
は、ここに私のCMakeLists.txtファイルです。
私は何が欠けていますか?
「ライブラリからヘッダーが見つからないため、問題が発生しました。」 - これはどういう意味ですか? 'find_package'は失敗しますか?あるいは '#include'指示文が失敗しますか?後者の場合、正確なエラーメッセージは何ですか? – Tsyvarev
@Tsyvarev投稿を編集しました。私は#include指令を意味していました。このようなファイルやディレクトリがないという特別なエラーメッセージは表示されません。 –
**正確なエラーメッセージ**をご覧ください。 'find_package(SFML)'はエラーを返さないので正しく動作します。したがって、SFMLのインストールが壊れているか、不正な '#include'ディレクティブを使用しています。 – Tsyvarev