Gui*_*i13 23 static file object cmake
我正在尝试将我的项目移动到CMake,同时在编译过程中进行一些优化.
这是交易:
它看起来像这样:
.
libBig.a # made from object from subdir1 and subdir2
subdir1/
src/
libSubdir1.a
subdir2/
src/
libSubdir2.a
Run Code Online (Sandbox Code Playgroud)
今天,我设法使用一个全局变量,其中每个子目录CMakeLists.txt将附加自己的源文件.我在我的大库中使用此变量作为"源"输入:
# the big library depends on all the source files
# ${all_src} is automatically filled with each subdir's cpp file
get_property( BigLib_src GLOBAL PROPERTY all_src)
add_library( Big STATIC ${BigLib_src}) # recompiles all the sources
Run Code Online (Sandbox Code Playgroud)
现在,这可行,但不是太糟糕,但问题是,我的所有源文件都被编译两次:一次用于子库,一次用于大型库.
CMake似乎忘记了它已经构建了它们.
我必须保留subdir库,ar不能合并两个静态库.
你知道怎么做吗?
mlo*_*kot 28
您可以使用CMake 2.8.8中引入的新OBJECT库功能.这个想法在这里解释.基本上,OBJECT库与Autotools中已知的便利库类似,可以对目标文件进行分组.
查看完整的CMake OBJECT库教程.
| 归档时间: |
|
| 查看次数: |
13850 次 |
| 最近记录: |