我正在尝试使用一个仅包含头文件的库(thread-pool)作为子项目。因此,在根CMakeLists.txt
中,我有以下内容:
ADD_SUBDIRECTORY(thread_pool)
thread-pool/CMakeLists.txt
内部
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(thread-pool)
SET(THREAD_POOL_SOURCES)
ADD_LIBRARY(thread-pool STATIC ${THREAD_POOL_SOURCES})
由于这是一个仅有头文件而没有源代码的库,因此会出现错误。
引用: CMake 错误:CMake 无法确定目标的链接器语言:thread-pool
其中一种解决方案是使用ADD_LIBRARY(thread-pool INTERFACE),但这只适用于CMake 3.0,而我安装的是2.8。我不是在寻求如何将CMake升级到3.0的解决方案,而是想知道是否有其他方法可以在CMake 2.6或2.8中使用?
我想到的一种方法是创建一个虚拟cpp文件,其中包含一些虚拟函数,并将其放入源文件中,但这将是一个糟糕的解决方案。