我已经为此苦苦挣扎了一段时间。我使用 CPM 包管理器从 github 中为我的项目提取库。我更喜欢这种方式,而不是其他链接方法。我也尝试过 gh:boostorg/dynamic_bitset 但这也给我带来了问题。我能够让 cmake 为下面的 cMakeList 生成。
标题 #include
cmake_minimum_required( VERSION 3.5 )
find_package(Git)
include(get_cpm.cmake)
set(SFML_BUILD_EXAMPLES OFF)
set(BUILD_SHARED_LIBS OFF)
set(SFML_DIR "${SFML_SOURCE_DIR}")
set(TGUI_BACKEND "SFML_GRAPHICS")
CPMAddPackage("gh:skypjack/entt#v3.10.1")
CPMAddPackage("gh:SFML/SFML#2.6.x")
CPMAddPackage("gh:texus/[email protected]")
CPMAddPackage("gh:nlohmann/[email protected]")
CPMAddPackage("gh:boostorg/boost#boost-1.83.0")
project( Eridanus )
find_package( OpenGL REQUIRED )
include_directories( ${OPENGL_INCLUDE_DIRS} )
get_filename_component(PARENT_DIR ../ ABSOLUTE)
include_directories(
${PROJECT_SOURCE_DIR}
"${PARENT_DIR}/Eridanus4x/headers"
"${PARENT_DIR}/Eridanus4x"
"${PARENT_DIR}/Eridanus4x/SelbaWard"
)
add_executable(${CMAKE_PROJECT_NAME}
main.cpp
game.cpp
.... etc.
target_link_libraries(${PROJECT_NAME} PRIVATE sfml-graphics sfml-window sfml-system EnTT::EnTT TGUI::TGUI nlohmann_json::nlohmann_json Boost::dynamic_bitset)
option(BUILD_EXAMPLES "Build examples" OFF)
奇怪的是,它无法按照 CPM 通常允许的方式工作,用下面的代码替换 CPMAddPackage 行以解决此问题。 CPM添加包( 名称提升 网址“https://github.com/boostorg/boost/releases/download/boost-1.83.0/boost-1.83.0.tar.xz”)