如何在CMake+SFML项目中通过VCPKG接入tmxlite及报错求助
已确定方案(Alexander Neumann)
- 在任意目录下创建文件
Findtmxlite.cmake - 写入以下路径配置(请根据自身环境调整路径):
#Findtmxlite.cmake set(VCPKG_PATH "${USER_PROFILE}/vcpkg") set(VCPKG_INCLUDE_DIR "${VCPKG_PATH}/installed/${VCPKG_TARGET_TRIPLET}/include") set(VCPKG_LIBRARY_DIR "${VCPKG_PATH}/installed/${VCPKG_TARGET_TRIPLET}/lib") # 设置tmxlite搜索路径 # 查找tmxlite头文件路径 find_path(tmxlite_INCLUDE_DIR NAMES tmxlite/Map.hpp PATHS VCPKG_INCLUDE_DIR) # 查找tmxlite库文件 find_library(tmxlite_LIBRARY NAMES tmxlite PATHS VCPKG_LIBRARY_DIR) # 创建tmxlite的导入目标 add_library(tmxlite INTERFACE) # 指定tmxlite头文件路径 target_include_directories(tmxlite INTERFACE ${tmxlite_INCLUDE_DIR}) # 将tmxlite库链接到目标 target_link_libraries(tmxlite INTERFACE ${tmxlite_LIBRARY})
- 在项目的CMakeLists.txt中添加以下代码(替换为
Findtmxlite.cmake所在目录的实际路径):
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "path/to/Findtmxlite.cmake/dir")
完成上述步骤后,即可在项目中调用tmxlite:
find_package(tmxlite REQUIRED) add_executable (tester "main.cpp") target_link_libraries(tester PRIVATE tmxlite)
问题求助(tmxlite开发者)
错误详情:
CMake错误位于C:/Users/Agenteec/vcpkg/scripts/buildsystems/vcpkg.cmake:843 (_find_package):
由于未在CMAKE_MODULE_PATH中提供"Findtmxlite.cmake",本项目请求CMake查找tmxlite提供的包配置文件,但CMake未找到。未找到tmxlite提供的、名称为以下任意一种的包配置文件:
tmxliteConfig.cmake
tmxlite-config.cmake请将tmxlite的安装前缀添加到CMAKE_PREFIX_PATH,或者将"tmxlite_DIR"设置为包含上述任一文件的目录。如果tmxlite提供单独的开发包或SDK,请确保已安装。
环境信息:
Vcpkg已安装包列表:
- tmxlite:x64-windows 1.3.0#1 一款轻量级C++14 TMX地图解析库
- tmxlite:x86-windows 1.3.0#1 一款轻量级C++14 TMX地图解析库
已尝试的无效方法:
# 方法1 find_package(tmxlite REQUIRED) add_executable (tester "main.cpp") target_link_libraries(tester PRIVATE tmxlite)
# 方法2 set(VCPKG_PATH "${USER_PROFILE}/vcpkg") set(VCPKG_INCLUDE_DIR "${VCPKG_PATH}/installed/${VCPKG_TARGET_TRIPLET}/include") set(VCPKG_LIBRARY_DIR "${VCPKG_PATH}/installed/${VCPKG_TARGET_TRIPLET}/lib") add_executable (tester "main.cpp") target_link_libraries(project PRIVATE ${VCPKG_LIBRARY_DIR}/tmxlite.lib)
# 方法3 set(VCPKG_PATH "${USER_PROFILE}/vcpkg") set(VCPKG_INCLUDE_DIR "${VCPKG_PATH}/installed/${VCPKG_TARGET_TRIPLET}/include") set(VCPKG_LIBRARY_DIR "${VCPKG_PATH}/installed/${VCPKG_TARGET_TRIPLET}/lib") find_package(tmxlite REQUIRED HINTS "${VCPKG_PATH}/installed/${VCPKG_TARGET_TRIPLET}") add_executable (tester "main.cpp") target_link_libraries(project PRIVATE tmxlite)
内容的提问来源于stack exchange,提问作者Agenteec
相关产品推荐
相关产品推荐

