CMake构建实战:项目开发卷
上QQ阅读APP看书,第一时间看更新

1.2 构建多源程序

1.2.1 输出另一源程序的字符串

本例由1.1节的“您好,世界”程序修改而成。新建源文件msg.c,在其中定义输出的字符串内容,如代码清单1.2所示。

代码清单1.2 ch001/多源程序/msg.c

const char *msg = "您好,我来自msg.c!";

然后将“您好,世界”主程序中输出的内容修改为变量msg的值,同时将msg声明为一个外部变量,如代码清单1.3所示。

代码清单1.3 ch001/多源程序/main.c

#include <stdio.h>
 
extern const char *msg;
 
int main() {
    printf("%s\n", msg);
    return 0;
}

至此,本例的两个源程序就已经编写好了,那么该如何构建它们呢?既然只是多了一个源文件,想必直接罗列在编译器命令行参数的后面就可以了吧!

MSVC的构建过程如下:

> cd CMake-Book\src\ch001\多源程序
> cl main.c msg.c
> main.exe
您好,我来自msg.c!

GCC的构建过程如下:

$ cd CMake-Book/src/ch001/多源程序
$ gcc main.c msg.c
$ ./a.out
您好,我来自msg.c!

果然如此简单,甚至二者的命令行参数都毫无分别!接下来,我们让情况变得复杂一些。