最近需要碰到到Linux下的设备使用,需要使用交叉编译器,故在此记录下碰到的问题,以作经验。

交叉编译器

梗概

交叉编译器听起来很玄乎,实则是类似于gcc的编译器,而且大多数情况下,其使用的命令也和gcc一致,语法一致,即你可以在gcc上编译的文件,在交叉编译器上也可以编译,这是用于编译运行在特定的设备上的程序的编译器,只不过不是在PC上。

安装

你得到的交叉编译器通常是一个压缩包,如果没有后缀名就在后面加上(.tar/.tar.gz),就可以打开压缩包,其编译的程序通常问arm-xxx-linux-gcc,在目录下的bin文件下,理应解压出来就可以在该目录下直接编译,但是在linux下你需要将该目录加入系统变量,否则其不视之为一个命令。

增加系统参数

方法一

我第一次测试的时候使用了简易而不持续的方法,只可以在这个终端下有效。1export PATH=/usr/local/webserver/mysql/bin:$PATH //将当前目录增加到PATH路径中1echo $PATH //打印PATH路径

如果看到如下界面就说明当前路径已经加入到PATH路径中。

/usr/local/webserver/mysql/bin:/usr/local/webserver/mysql/bin/:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

方法二1vim /etc/profile

在最后,添加:1export PATH="/usr/local/webserver/mysql/bin:$PATH"

保存,退出,然后运行:1source /etc/profile

不报错则成功。

Gcc多文件编译1gcc getop.c calcDemo.c -o output.out

静态库生成(.a文件)

编译c文件爱你,生成目标文件

使用gcc/arm-xxx-linux文件编译c文件,得到.o文件1gcc -c file1.c file2.c

这样就得到了file1.o file2.o文件

归档目标文件,生成静态库1ar crv libmylib.a file1.o file2.o

我们就得到了libmylib.a,这就是我们需要的静态库。

上述命令中 crv 是 ar的命令选项:c 如果需要生成新的库文件,不要警告

r 代替库中现有的文件或者插入新的文件

v 输出详细信息

通过 ar t libmylib.a 可以查看 libmylib.a 中包含的目标文件。

可以通过 ar –help 查看更多帮助。

注意:我们要生成的库的文件名必须形如 libxxx.a ,这样我们在链接这个库时,就可以用 -lxxx。

反过来讲,当我们告诉编译器 -lxxx时,编译器就会在指定的目录中搜索 libxxx.a 或是 libxxx.so

使用静态库文件1gcc test.c -L. -lmylib

将会生成a.out,通过 ./a.out 可以运行该程序。说明我们的静态库能正常工作。

上面的命令中 -L. 告诉 gcc 搜索链接库时包含当前路径, -lmylib 告诉 gcc 生成可执行程序时要链接 libmylib.a。

linux 交叉编译器作用,Linux下交叉编译器学习相关推荐

  1. linux boot分区作用,Linux和Uboot下eMMC boot分区读写

    关键词:eMMC boot.PARTITION_CONFIG.force_ro等. 1. eMMC的分区 大部分eMMC都有类似如下的分区,其中BOOT.RPMB和UDA一般是默认存在的,gpp分区需 ...

  2. Linux的inode作用,Linux下inode知识

    [TOC] 背景 今天复习Linux命令,到df的时候发现了一个之前忽略的东西.也就是 -i 这个选项,列出文件系统分区的inode信息.这个inode,是个什么东西? inode是用来做什么的 in ...

  3. 在linux中hdparm作用,Linux下hdparm硬盘测速

    在Linux下可以使用hdparm对硬盘进行测试或者查看硬盘的相关信息.这样你就知道了硬盘读写速度. Hdparm功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ ...

  4. linux proc目录作用,Linux下的proc目录详解

    Linux下的proc目录详解 [复制链接] 文章结构: 1.什么是proc目录 2. 初识proc目录 3. 从proc窥看系统详情 1.什么是proc目录 proc是Linux系统下一个很重要的目 ...

  5. linux 进程的作用,linux的几个进程的作用

    author:skate time:2011/08/10 linux的几个进程的作用 1. kswapd0 Linux uses kswapd for virtual memory managemen ...

  6. linux中where作用,linux基础命令——whereis命令的使用介绍

    摘要: ​linux基础命令中的whereis命令用于查找文件.​该指令会在特定目录中查找符合条件的文件.这些文件应属于原始代码.二进制文件,或是帮助文件.​该指令只能用于查找二进制文件.源代码文件和 ...

  7. linux libpath的作用,linux – LD_LIBRARY_PATH似乎不起作用

    我正在尝试编译测试文件: gcc -o test test.c -lg2c 但我得到错误: /usr/bin/ld: cannot find -lg2c 如果我使用: gcc -o test test ...

  8. linux uid gid 作用,Linux uid和gid

    Linux uid和gid教程 我们在登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字).Linux ...

  9. linux rcp命令作用,Linux之间传送文件之rcp命令

    1. rcp命令简介 rcp代表"remote file copy"(远程文件拷贝).两台Linux主机之间复制文件可以使用它.rcp支持复制文件,也支持复制目录. 注意: rcp ...

  10. linux挂载硬盘作用,Linux(挂载) mount umount作用

    在Linux中,如果你要使用储存设备 (Mo.硬盘.光驱等) ,就得先将它挂上 (Mount),而当储 存设备挂上了之后,就可以把它当成一个目录来进行访问.挂上一个设备使用mount命令. 在使用mo ...

最新文章

  1. ASP.NET 应用中大文件上传研究
  2. OA软件实施中三个不能做的
  3. JQuery中的样式操作
  4. Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET) json对象和字符串的转换
  5. 【SpringClould】Spring Cloud Eureka源码分析
  6. matlab正交表,正交表的构造方法及Matlab实现
  7. 记某单机游戏的一次内购破解
  8. Windows搭建基于EClipse的CppUTest单元测试环境
  9. vivo计算机的隐藏功能教程,Vivo手机的5个隐藏功能,真的很实用,一定要打开
  10. Android动画了解—转场/过渡(Transition) 动画
  11. 开关电源补偿环路设计(2):实践部分-例题
  12. 字节跳动面试流程以及注意事项,各大厂具有通点,看看不吃亏!
  13. vulnhub:inferno-1.1
  14. OrgChart组织架构图控件
  15. 中小民营企业劳动关系和谐浅议
  16. Python求数组的自然间断点
  17. 诊断数据库ODX—数据库框架(基于ISO22901详解)
  18. vba单元格颜色设置
  19. MacOS设置终端代理
  20. 视频监控换代升级,5G+AI助力视频监控的超高清化发展

热门文章

  1. RT-Thread配置SPI-Flash(W25Q256)
  2. php大马2022亲测可用,绕过waf无加密版本
  3. Navicat安装(一篇通解)
  4. mac Navicat安装提示’已损坏‘,解决方案
  5. 如何解决VC 应用程序无法启动,因为应用程序的并行配置不正确 sxstrace.exe问题...
  6. mysql读mdf_mdf文件如何导入MySQL数据库?
  7. win10 同时多用户远程桌面连接-RDPWrap-v1.6.2-support-21H2-19044.1949
  8. android动画特效,安卓——之Animation动画特效
  9. SPSS 数据的统计分析
  10. 出入机房计算机无登记表,三峡大学机房维护管理制度