Kor*_*idu 12 cross-platform cmake cross-compiling
我刚开始玩CMake.我有类似的东西:
/DEV
|-- lib1
| CMakeLists.txt
|-- lib2
| CMakeLists.txt
|-- exe1
| CMakeLists.txt
/BUILD
|-- lib1
|-- lib2
|-- exe1
/INSTALL
|-- include
|-- lib
|-- bin
Run Code Online (Sandbox Code Playgroud)
我想要:
我没有任何线索从哪里开始.请帮忙...
Fra*_*ser 12
您不需要单独的CMakeLists.txt来独立构建目标.假设您有一个顶级CMakeLists.txt:
ADD_LIBRARY(lib1 ${all_lib1_files})
ADD_LIBRARY(lib2 ${all_lib2_files})
ADD_EXECUTABLE(exe1 ${all_exe1_files})
TARGET_LINK_LIBRARIES(lib2 lib1) # lib2 now depends on lib1
TARGET_LINK_LIBRARIES(exe1 lib2) # exe1 now depends on lib2 and lib1
Run Code Online (Sandbox Code Playgroud)
然后,您只需构建运行LIB1 make lib1或msbuild lib1.vcxproj等,您可以通过在每个目标个体的CMakeLists.txt文件实现相同的-这是给你,如果你认为这是值得的.
如果您的项目使用FIND_LIBRARY或导入这些目标FIND_PACKAGE,那么如果它们不是最新的,则不会重建它们.最终,如果您希望自动重建过时的依赖项,则需要让CMake了解依赖目标的源和规则,即CMakeLists.txt文件需要使用ADD_LIBRARY或添加目标ADD_EXECUTABLE.
您不应该引用INSTALL目录(INSTALL我想象的命令除外),因为在链接目标时,CMake将隐式使用libs/exes构建位置而不是安装位置.
| 归档时间: |
|
| 查看次数: |
14663 次 |
| 最近记录: |