c++ - CMake 与 Eigen 的链接错误“CMake 无法确定目标的链接器语言”
问题描述
让我先显示目录树和代码。
eigen-git-mirror // from https://github.com/eigenteam/eigen-git-mirror
CMakeLists.txt // (1)
main.cpp
CODES
--CMakeLists.txt
--A
----*.hpp
----**.hpp
----...
--B
----*.hpp
----**.hpp
----...
--CMakeLists.txt // (2)
CMakeLists.txt (1)
cmake_minimum_required (VERSION 3.0)
project(PROJ)
add_subdirectory(eigen-git-mirror)
add_subdirectory(CODES)
find_package (Eigen3 3.3 REQUIRED NO_MODULE)
add_executable("${PROJECT_NAME}" main.cpp)
target_link_libraries("${PROJECT_NAME}" PRIVATE Eigen3::Eigen CODES)
CMakeLists.txt (2)
file(GLOB CODES_A "A/*.hpp")
file(GLOB CODES_B "B/*.hpp")
source_group("A" FILES ${CODES_A})
source_group("B" FILES ${CODES_B})
add_library(CODES
${CODES_A}
${CODES_B}
)
target_include_directories(CODES
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/A"
PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/B"
)
target_link_libraries(CODES PRIVATE Eigen3::Eigen)
现在当我编译 cmakelists 文件时,它会完成配置,但会产生错误CMake can not determine linker language for target: CODES
。我认为问题在于 CMake 无法检测到语言CODES
,但即使我添加set_target_properties(CODES PROPERTIES LINKER_LANGUAGE C17)
它也会给出相同的结果。似乎是什么问题,我应该如何解决?
解决方案
推荐阅读
- mysql - RDS MySQL、Kinesis Firehose 和 Elasticsearch,初始数据加载?
- process - 如何在 Rust 中生成分离的命令/进程?
- django - 如何在没有重复字段的情况下注释字段 django
- html - 单行h3下方的奇怪间距
- javascript - 查找不在第二个数组中的数组值并附加文本
- java - 从字符串解析到日期会引发不可解析的日期错误
- c# - 模拟 IOrderedQueryable 和 IDocumentQuery
- javascript - 获取 window.scrollby 的结尾
- angular - 使用现有组件和模块动态加载 Angular 4 模板
- html - 通过 Angular 5 读取/下载 JSON 文件并将数据存储在本地 JSON 文件中