有关 all-in-source build 的实现办法 #2470
-
目的项目里为了松散的代码结构,采用了插件的形式。插件在 Developer Mode 下以共享库的形式存在。 疑问我曾在 CMake 中简单实现了该功能,具体做法是收集模块的源文件、为源文件添加需要的预定义宏、最终直接把所有的源文件放进一个目标中进行构建。 |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 7 replies
-
走正常 static link 不行么? 平常走 so 库,发布时候走 .a 静态库全部 link 到一个 binary,还可以开下 lto 啥的整体优化,每个 .a 里面原本就是一堆 obj 的归档。 为啥非要基于 obj 自己组织?如果非要这么搞,on_load 或者 before_link 里面取所有 |
Beta Was this translation helpful? Give feedback.
-
走 static link 主要有两个问题
|
Beta Was this translation helpful? Give feedback.
走正常 static link 不行么? 平常走 so 库,发布时候走 .a 静态库全部 link 到一个 binary,还可以开下 lto 啥的整体优化,每个 .a 里面原本就是一堆 obj 的归档。
为啥非要基于 obj 自己组织?如果非要这么搞,on_load 或者 before_link 里面取所有
target:deps()
然后将里面的dep:objectfiles()
全部插入到target:objectfiles()