linux下 c语言多文件编译

linux下 c语言多文件编译,第1张

如果有多个源文件,基本上有两种编译方法:

[假设有两个源文件为test.c和testfun.c]

1.

多个文件一起编译

用法:#gcc

testfun.c

test.c

-o

test

作用:将testfun.c和test.c分别编译后链接成test可执行文件。

2.

分别编译各个源文件,之后对编译后输出的目标文件链接。

用法:

#gcc

-c

testfun.c

//将testfun.c编译成testfun.o

#gcc

-c

test.c

//将test.c编译成test.o

#gcc

-o

testfun.o

test.o

-o

test

//将testfun.o和test.o链接成test

以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

要分开编译,然后链接,比如

$ g++ print.cpp -c

$ g++ test.cpp -c

$ g++ test.o print.o -o mytest

这里的-c表示只编译。因为你有两个文件,所以编译两次。编译后会生成.o的文件。

然后把这些在链接起来就可以了。-o表示输出的文件。

void mytool2_print(char *print_str)这是函数原型

#ifndef _MYTOOL_2_H

#define _MYTOOL_2_H

#endif

这是防止重复include, 实际上已经是个写头文件的“标准技巧”了。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6133306.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-15
下一篇2023-03-15

发表评论

登录后才能评论

评论列表(0条)

    保存