首页 > 系统服务 > 详细

arm-linux-gcc 的使用

时间:2019-06-29 09:59:21      阅读:100      评论:0      收藏:0      [点我收藏+]

1. 编译 C 文件,生成 elf 可执行文件 h1.c 源文件

#include <stdio.h> void hellofirst(void)

{

printf("The first hello! \n");

}

 

h2.c 源文件

#include <stdio.h> void hellosecond(void)

{

printf("The second hello! \n");

}

 

hello.c 源文件

#include  <stdio.h> void hellosecond(void); void hellofirst(void);

 

int main(int argc, char *argv[])

{

hellofirst(); hellosecond(); return(0);

}

编译以上 3 个文件,有如下几种方法:

方法 1:

[arm@localhost gcc]#arm­linux­gcc ­c h1.c [arm@localhost gcc]#arm­linux­gcc ­c h2.c

[arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.o h2.o

方法 2:

[arm@localhost gcc]#arm­linux­gcc ­c h1.c h2.c [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.o h2.o 方法 3:

[arm@localhost gcc]#arm­linux­gcc ­c ­o h1.o h1.c

 

[arm@localhost gcc]#arm­linux­gcc ­c ­o h1.o h1.c [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.o h2.o 方法 4:

[arm@localhost gcc]#arm­linux­gcc ­o hello hello.c h1.c h2.c

­c: 只编译不连接。

­o: 编译且连接。

 

2. 产生一个预处理文件 当要看一个宏在源文件中产生的结果时,比较合适。

[arm@localhost gcc]#arm­linux­gcc ­E h1.i h1.c

­E: 产生一个预处理文件.

 

3. 产生一个动态库

动态库是在运行时需要的库。

[arm@localhost gcc]#arm­linux­gcc ­c ­fpic h1.c h2.c [arm@localhost gcc]#arm­linux­gcc ­shared h1.o h2.o ­o hello.so [arm@localhost gcc]#arm­linux­gcc ­o hello hello.c hello.so

把 hello.so 拷贝到目标板的/lib 目录下,把可执行文件拷贝目标板的/tmp 目录下,在目标板上运行 hello.

#/tmp/hello

或把 hello.so 和 hello 一起拷贝到/tmp 目标下,并设置 LD_LIBRARY_PATH 环境变量

#export LD_LIBRARY_PATH =/tmp:$LD_LIBRARY_PATH

#/tmp/hello

arm-linux-gcc 的使用

原文:https://www.cnblogs.com/fanweisheng/p/11105582.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!