CMake 错误:无法确定目标的链接语言
CMake Error: Cannot determine link language for target
我创建了以下目录:
FrameWork/
├── CMakeLists.txt ==> contains only add_subdirectory(UtilsBasic)
└── UtilsBasic
├── CMakeLists.txt ==> Contains only add_subdirectory(SmartSingleton)
└── SmartSingleton
├── CMakeLists.txt
├── include
│ └── SmartSingleton.hpp
目录中SmartSingleton
CMakeLists.txt
包含:
set(codeprod_list
include/SmartSingleton.hpp)
USR_add_shared_lib(SmartSingleton "${codeprod_list}")
target_link_libraries(SmartSingleton PUBLIC Common)
target_include_directories(SmartSingleton PUBLIC include/)
该项目的主要CMakeLists.txt
如下:
cmake_minimum_required (VERSION 3.4)
project (MyProject)
USR_init_project(MyProject)
add_subdirectory(src/FrameWork)
错误
-- 配置完成 CMake 错误:CMake 无法确定目标的链接器语言:智能单例 CMake 错误:无法确定链接 目标"智能单例"的语言。
我不明白为什么我会收到该错误。我的意思是,在Framework
中,我创建了一个指向UtilsBasic
的链接,进而创建了一个指向SmartSingleton
的链接。
在SmartSingleton/CMakeLists.txt
文件中尝试一下:
set_target_properties(SmartSingleton PROPERTIES LINKER_LANGUAGE CXX)
这将直接告诉 CMake 为该目标使用哪种语言。
但是,如果您的库确实只是头文件,则您可能还会收到您提到的错误。考虑将此库设为INTERFACE
库:
add_library(SmartSingleton INTERFACE)
target_include_directories(SmartSingleton INTERFACE include/)
以下是INTERFACE
库的文档。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 有根的二进制搜索树.保留与其父级的链接
- 读取文件的最后一行并输入到链接列表时出错
- 仅为从某种语言编译的对象添加链接库?
- CMake无法确定目标的链接器语言:fileloader
- 为什么函数 f4 的名称具有内部链接,而不是 C 语言链接?
- 在这种情况下,GCC 和 clang 是否显示与 Visual Studio 相同的结果,关于语言链接?
- CMake 错误:无法确定目标的链接语言
- 语言链接只属于一个功能吗?
- 是否可以专门制作语言链接模板
- 我什么时候必须用 C 语言链接库
- 将 Rob Hess 的 SIFT 库(使用 C 语言,使用 OpenCV)与C++链接
- 是常量变量,默认为内部链接语言特定或编译器特定的功能
- CMake CLion 问题 - 错误:无法确定目标"XYZ"的链接语言
- 无法确定项目的链接语言
- CMake错误:CMake无法确定目标myapp的链接器语言
- 名称或类型具有某种语言链接意味着什么
- 链接语言