使用clang编译器,常用编译命令选项

先在某个目录下使用vim编译器建一个.c文件,方法:

vim hello.c   //生成一个.c文件进入编辑输出值后Esc-> :wq

编辑内容:

#include <studio.h>

int main()

{

printf("hello world");

return 0;

}
#clang hello.c 
#ls  //查看该目录下文件
#./a.out  //执行该文件输出值 ./表示在当前目录,a.out为可执行程序文件名

常用编译命令选项 

1. 无选项编译链接
用法:#clang hello.c
作用:将hello.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。编译成功后可以看到生成了一个a.out的文件。在命令行输入./a.out 执行程序。./表示在当前目录,a.out为可执行程序文件名。

2. 选项 -o
用法:#clang hello.c -o hello
作用:将hello.c预处理、汇编、编译并链接形成可执行文件hello.c。-o选项用来指定输出文件的文件名。输入./hello执行程序。

3. 选项 -E
用法:#clang -E hello.c -o hello.i
作用:将hello.c预处理输出hello.i文件。

4. 选项 -S
用法:#clang -S hello.i
作用:将预处理输出文件hello.i汇编成hello.s文件。

5. 选项 -c
用法:#clang -c hello.s
作用:将汇编输出文件hello.s编译输出hello.o文件。

6. 无选项链接
用法:#clang hello.o -o hello
作用:将编译输出文件hello.o链接成最终可执行文件hello。输入./hello执行程序。

如果想直接输入hello就运行,需要把hello复制到目录/usr/bin下

7. 选项-O
用法:#clang -O1 hello.c -o hello
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。输入./hello执行程序。

8.编译使用C++ std库的程序
用法:#clang hello.cpp -o hello -l std c++ 作用:将hello.cpp编译链接成test可执行文件。-l  std  c++指定链接std c++库。

 

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

[假设有两个源文件为hello.c和hi.c]

1. 多个文件一起编译
用法:#gcc hi.c hello.c -o hello
作用:将hi.c和hello.c分别编译后链接成hello可执行文件。

2. 分别编译各个源文件,之后对编译后输出的目标文件链接。 用法:
#clang -c hi.c //将hi.c编译成hi.o #clang -c hello.c    //将hello.c编译成hello.o

#gcc -o hi.o hello.o -o hello //将hi.o和hello.o链接成hello 以上两种方法相比较,第一种方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

本文参考:https://www.cnblogs.com/heguihui/p/10766791.html

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐