我想使用正则表达式添加所有文件以添加库,但它不起作用。
我试过这个:
add_library(8021qbg SHARED
8021QBG/"*.h"
8021QBG/"*.cpp"
)
得到这个:
CMake Error at CMakeLists.txt:128 (add_library):
Cannot find source file:
8021QBG/"*.h"
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
我试过这个:
file(GLOB 8021x
8021x/"*.h"
8021x/"*.cpp"
)
add_library(8021x SHARED
${8021x}
)
在编译时,make命令看不到要编译的源代码。
我想用一些东西来构建共享库,而不是写下每个源文件(我想是正则表达式)。
怎么做?
最佳答案
您需要让cmake将所有匹配的文件列为一个变量:
file(GLOB SOURCE_FILES
8021QBG/*.h
8021QBG/*.cpp
)
然后使用此变量:
add_library(8021qbg SHARED
${SOURCE_FILES}
)
有关
file(GLOB)
命令的更多信息。生成与匹配的文件列表并将其存储到。全局表达式类似于正则表达式,但要简单得多。