我有一个项目依赖于C++上的SFML。我试着用CMake来实现它。CMakeLists.txt是:
cmake_minimum_required(VERSION 3.16.3)
project(3D_Renderer_from_scratch)
set(CMAKE_CXX_STANDARD 17)
include_directories(headers source)
set(SFML_STATIC_LIBRARIES TRUE)
find_package(SFML COMPONENTS window graphics system)
set(SOURCES
Main.cpp
source/Application.cpp
source/Box.cpp
source/Camera.cpp
source/FileReader.cpp
source/KeyboardHandler.cpp
source/Sphere.cpp
source/Triangle.cpp
source/Window.cpp
source/World.cpp
)
add_executable(executable ${SOURCES})
target_link_libraries(executable ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})在运行cmake .之后,我有以下错误:
$ cmake .
-- Requested SFML configuration (Static) was not found
CMake Warning at CMakeLists.txt:10 (find_package):
Found package configuration file:
/usr/lib/x86_64-linux-gnu/cmake/SFML/SFMLConfig.cmake
but it set SFML_FOUND to FALSE so package "SFML" is considered to be NOT
FOUND.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mcjohn974/3D_Renderer_from_scratch我怎么才能修好它?(sfml已经安装)
发布于 2022-09-27 07:55:01
正如注释中已经提到的(为什么不把它写成答案呢?),CMake正在寻找静态的SFML库,它很可能只是找到了共享库。
要么确保提供静态库(带有-s后缀的库)。
或者不要请求静态库,这样可以实现不设置SFML_STATIC_LIBRARIES。
https://stackoverflow.com/questions/73826266
复制相似问题