c/c++语言开发共享如何使用gcc_clang进行C语言的编译_编译的流程是什么?

编译命令 编译流程 1. 预编译 2. 编译 3. 链接, 动态链接/静态链接 编写文件 add.c clang g c add.c // 生成一个指定的add.o的文件 libtool static o libmylib.a add.o // 生成一个libmylib.a的文件,必须要lib开头 …


编译命令

gcc/clang -g -o2 -o -c test test.c -i... -l... -l -g : 输出文件中的调试信息 -o : 对输出文件做出指令优化,默认是o1, o2优化更多 -c : 可以编译成 -o : 输出文件 -i : 指定头文件 -l : 指定库文件位置 -l : 具体使用哪些库

编译流程

  1. 预编译
  2. 编译
  3. 链接, 动态链接/静态链接

编写文件 add.c

#include <stdio.h>  int add(int a, int b) {     return (a+b); } 

clang -g -c add.c // 生成一个指定的add.o的文件

libtool -static -o libmylib.a add.o // 生成一个libmylib.a的文件,必须要lib开头

编写文件 add.h

int add(int a, int b);

编写最终程序

#include <stdio.h> #include "add.h"  int main(int argc, char *argv[]) {   int c = add(1, 2);   printf("c: %d", c)   return 0; }

clang -g -o testlib testlib.c -i . -l . -lmylib

最终生成 testlib 的文件, libmylib.a 的库必须要去掉 lib开头和结尾的.a

 clang -g -o testlib testlib.c -i . -l . -lmylib // -i . 头文件在当前目录的意思, -l . -lmylib是指定文件的意思

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/600523.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐