【Cmake】在Windows下用Cmake构建C++工程项目——更好一点的Hello World——2

1. 准备工作

1)在D:\vs_test\cmake_test目录下,新建t2文件夹;

2)在t2下,新建目录src和文件CMakeLists.txt。src是用来存放源文件的。

3)在目录src下,新建CMakeLists.txtmain.cpp

【Cmake】在Windows下用Cmake构建C++工程项目——更好一点的Hello World——2【Cmake】在Windows下用Cmake构建C++工程项目——更好一点的Hello World——2

 注意:在cmake工程中,任何子目录都需要建立一个 CMakeLists.txt

t2目录下的CMakeLists.txt文件内容:

PROJECT (HELLO)
ADD_SUBDIRECTORY(src bin)

src/CMakeList.txt 内容:

ADD_EXECUTABLE(Qt main.cpp)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

src/main.cpp 内容:

#include <iostream>

int main()
{
	std::cout << "Hello World from t2 Main!\n";
	while (1);
}

2. 开始构建

具体的构建方法参考我上一篇文章:Cmake】在Windows下用Cmake构建C++工程项目——cmake 的 helloworld——1

构建完成后,你会发现生成的目标文件 Qt.exe 位于 build/bin/Debug 目录中。

运行结果:

【Cmake】在Windows下用Cmake构建C++工程项目——更好一点的Hello World——2

 

3. 语法解释

ADD_SUBDIRECTORY(src   bin)

ADD_SUBDIRECTORY 指令,这个指令用于向当前工程添加存放源文件的子目录(src),并可以指定中间二进制和目标二进制存放的位置(bin)。

上面的例子定义了将 src 子目录加入工程,并指定编译输出(包含编译中间结果)路径为bin 目录。如果不进行 bin 目录的指定,那么编译结果(包括中间结果)都将存放在build/src 目录(这个目录跟原有的 src 目录对应),指定 bin 目录后,相当于在编译时将 src 重命名为 bin,所有的中间结果和目标二进制都将存放在 bin 目录。

SET(EXECUTABLE_OUTPUT_PATH   ${PROJECT_BINARY_DIR}/bin)

SET(LIBRARY_OUTPUT_PATH   ${PROJECT_BINARY_DIR}/lib)

 将可执行二进制的输出路径为:build/bin

 将库的输出路径设为:build/lib

这两条指令写在工程的 CMakeLists.txt 还是 src 目录下的CMakeLists.txt,把握一个简单的原则,在哪里 ADD_EXECUTABLE 或 ADD_LIBRARY,如果需要改变目标存放路径,就在哪里加入上述的定义。

在这个例子里,当然就是指 src 下的 CMakeLists.txt 了。
 

上一篇:Linux下git安装配置


下一篇:在ubuntu编译rockchip mpp