在使用CMake的项目中,您经常会看到以下说明
mkdir build
cd build
cmake ..
make install
或者是变种
CMake是一个构建自动化工具,可以与许多构建器一起工作。所以上面的步骤对我来说很奇怪,因为
1.这意味着Linux(或者至少可以访问mkdir
和cd
1.它改变了你的$PWD
,在我看来,这对一个构建来说并不重要
1.它硬编码make
在我的个人准则里,我倾向于叫
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=<wherever_I_want_to_install> # -DCMAKE_INSTALL_PREFIX is optional
cmake --build build --target install
# ... or ...
cmake --build build
cmake --install build --prefix=<wherever_I_want_to_install>
1.无硬编码make
。100% CMake命令
$PWD
无变更
1.更少的操作系统特定详细信息
这种情况比较少见,但如果我需要编译器特定的选项或其他定制,我会使用-DCMAKE_CXX_FLAGS
通过命令行传递它们,并尽量使CMakeLists.txt与编译器无关。
是否存在客观差异(编辑:为清楚起见:客观的优点/缺点)。如果是,它们是什么?如果两种方法之间没有任何有意义的区别,为什么make install
选项如此频繁?
1条答案
按热度按时间jq6vz3qz1#
为什么在线资源倾向于调用
cmake .. && make
而不是cmake .. && cmake --build build --target install
我认为有以下几个原因:
make
,因此他们倾向于使用他们熟悉的内容cmake --build
在当时并不存在cmake --build
的存在