linux - 如何使用源模式添加库?
问题描述
我想使用正则表达式将所有文件添加到 add_library,但它不起作用。
我试过这个:
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)
命令。
生成与 匹配的文件列表并将其存储到 . 通配表达式类似于正则表达式,但要简单得多。
推荐阅读
- python - 如何将图像固定到我的 Tkinter 小部件的背景?
- amazon-web-services - 网络负载均衡器后面的应用程序负载均衡器的安全组不起作用
- c# - 我的代码太长了。可以简化吗?
- android-studio - 如何在 Android Studio 中更改与 Github 上的新存储库关联的默认名称
- python - 在 Anaconda 中安装 Keras 的问题
- python - Windows 上的 Python C 扩展。错误:未找到 vcvarsall.bat
- python - 如何获取链表中的第二条数据?
- android - 在哪里可以找到适用于 Android Studio 3.3 的未弃用地理围栏示例代码?
- javascript - 如何使用 MongoDB/Nodejs 和 Express 来检索基于 JavaScript 的游戏的保存数据?
- c - getchar() 不在 EOF 处暂停程序