我有一个由多个库和可执行文件组成的项目。可执行文件使用安装后最终位置指向的这些库。
所以,构建se的正常程序是:
cd lib1
mkdir build
make
make install
cd ..
rm -r build
cd lib2
mkdir build
make
make install
cd ..
rm -r build
最后转到可执行文件
cd exec1
mkdir build
make
make install
cd ..
rm -r build
我想拥有一个独特的CMakeLists.txt
,我可以在其中构建我的整个项目链,如下:
cmake_minimum_required(VERSION 3.2.2)
project(whole)
add_subdirectory(lib1)
add_subdirectory(lib2)
add_subdirectory(exec1)
但exec1
需要安装lib1
和lib2
,因为它指向了权威的lib目录。跑步时,我得到:
make[2]: *** No rule to make target '/home/project/dev/lib/liblib1.so', needed by 'exec1/main'. Stop.
CMakeFiles/Makefile2:175: recipe for target 'exec1/CMakeFiles/aeirturesettofactory.dir/all' failed
make[1]: *** [exec1/CMakeFiles/exec1.dir/all] Error 2
如何解决该安装依赖性?
答案 0 :(得分:2)
external_project_add()
可能是你的答案。你应该在cmake文档中查看它。但我将总结其能力: