gcc/交叉编译】的更多相关文章

一.gcc编译的情况: 1.linux gcc包含的c/c++编译器,gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译. 2.linux gcc的应用:直接编译生成 a.out文件 -o 指定生成文件名字. 3.linux gcc 编译时遇到"undefined reference to 'xxxxx'"的错误,不是编译出错,是连接出错,没有指定链接程序要用到的库.比如数学函数库要 加-lm ,数据库库要加 -lsqlite3,线程函数库…
1 NFS网络文件系统搭建 测试宿主机与目标板ping通 目标板上某个文件夹(例如mnt)挂载到宿主机(192.168.1.111)的/home/nfs_dir文件夹下 mount –t nfs –o nolock 192.168.1.111:/home/nfs_dir /mnt 2 交叉编译环境的搭建 参考http://linux-sunxi.org/Toolchain 通过apt-get可以很简单地安装交叉编译环境 Ubuntu Recent (from12.04 on) A complet…
命名格式: arch[-vendor][-os]-abi arch:CPU的架构 vendor:工具链的供应商 os: 目标上运行的操作系统,不同的操作系统对应着不同的C库,例如 newlib.glibc,.crt0等等.在程序的连接阶段将连接这些不同的C库. abi: 指定应用程序的二级制文件接口规定,确保不同的编译链编译的代码能够兼容.比如说,ARM EABI是一种由ARM公司建立的标准,允许一种工具链连接其他工具链生成的目标文件. 举例: arm-none-eabi CPU为ARM架构,没…
这个 GCCUI.EXE 是配合上一篇博文<用VC6开发嵌入式LINUX程序>说的:用VC6辅助开发LINUX程序的时候使用.把 gcc 编译器增加一个简易的图形界面,可以自动读取 vc6 的工程文件,然后用 gcc 的交叉编译器编译其中的文件并连接. 黄山松 (Tom Huang) 发表于博客园http://www.cnblogs.com/tomview/ 下载连接: http://files.cnblogs.com/files/tomview/gccui_20160519.rar 免责声明…
大的问题 先记录一下跨平台时需要注意的大方向. 1.OS和CPU 同一个操作系统, CPU也可能是不一样的, 比如windows也有基于arm CPU的版本,而android目前有x86,arm,mips几种. 即便是同一种CPU架构系列, 细节特性也不一样. 所以目前个人准备了3个宏开关来判断目标平台. OS, CPU, CPUbits OS对应不同的操作系统, CPU对应不同的CPU架构(比如x86和arm), CPU-bits目前是32和64, 比如CPU是x86时, CPUbits是64…
参考  https://golang.org/doc/install 自ECUG2013洗脑回来,就渴望早点接触Go 听着许式伟和谢孟军的演讲 发现go的网络库的确很强大,高负载利器,语言的一些精简导致很容易写出高效代码,而且开发效率  很高 不,应该是非常高   .(rpcjson,xml,.....其他一些自带的库也都很成熟) 是不是传说中的好东东,必须自己用了才能知道 ECUG视频传送们 www.youtube.com/watch?v=af7qOeN9Mvk 推荐一些相关书籍 学写的话,当…
TI DAVINCI DM6446的开发环境搭建不像三星S3C2410,S3C2440,ATMEL的AT91SAM9260之类的单核ARM那么简单,因为DM6446还有DSP端的开发环境,以及双核之间的通信和程序编译等问题,所以开发攻略第一步就是要搭好开发环境.其实TI的EVM(TI 的开发板)也提供相关的EVM start guide(sprue66f.pdf),适合参考.         DAVINCI开发环境搭建基本上可分以下几步:         1) 准备好各种相关的windows,l…
  很长一段时间没有更新博客了,是因为要推出新开发方案和做好客户服务工作,忙得不易乐乎.有关DAVINCI U-BOOT的移植,以前写过一篇u-boot-1.3.4(2008年的),其实和这个u-boot-2009.03差别不大,只不过这个u-boot-2009.03是从TI的网站上下载的,是DAVINCI系列最新的u-boot,也适合DM6467和DM365/368,移植的方法承接<Davinci DM6446开发攻略--u-boot-1.3.4移植(1)>,而本篇着重介绍nand flas…
gcc交叉编译时发生这种错误 /.. .../voice_demo: hidden symbol `pthread_atfork' in /opt/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/../aarch64-linux-gnu/libc/usr/lib/aarch64-linux-gnu/libpthread_nonshared.a(pthread_atfork.oS) is referenced by DSO 调用关系如下: A-…
1.首先需要知道 led 是受哪一个gpio口控制 从上图可以看出,两个led灯是受GPF4 GPF5控制的,低电平有效. 2.怎么控制GPF4 GPF5 通过2440的芯片手册可以看出,需要设置GPF的引脚只需要设置,两个寄存器就可以了.GPFCON  GPFDAT. C语言部分: void delay(volatile int d)//延时函数 { while (d--); } int led_on(int which) { unsigned int *pGPFCON = (unsigned…
http://scons.org/ https://www.ibm.com/developerworks/cn/linux/l-cn-scons/index.html 后附:另外,WAF是一个基于scons的构建工具,而且是 Re-design of scons to improve its worst features. 在软件项目开发过程中,make 工具通常被用来建造程序.make 工具通过一个被称为 Makefile 的配置文件可以自动的检测文件之间的依赖关系,这对于建造复杂的项目非常有…
Nachos是什么 Nachos (Not Another Completely Heuristic Operating System),是一个教学用操作系统,提供了操作系统框架: 线程 中断 虚拟内存(位图管理所有物理页,虚拟地址与物理地址之间的转换等) 同步与互斥机制(锁.条件变量.信号量),读者写者问题,生产者消费者问题,BARRIER问题等 线程调度(基于优先级可抢占式调度,时间片轮转算法,FIFO调度) 文件系统 系统调用 机器指令.汇编指令.寄存器 -- Nachos模拟了一个MIP…
最近学完了ARM的一些基础知识,开始在mini2440上开发一些简单的程序,串口发送程序是一开始涉及多个寄存器的例子,稍有繁多的步骤应该是开发过程中要慢慢适应的境况 下面的程序的目的是实现mini2440串口的发送功能,向超级终端打印简单字符. 设备:mini2440如图,软件为gcc交叉编译工具,minitools与超级终端,主机环境为Windows虚拟机WSL(版本为ubuntu18.04) 首先应该为C语言主程序的运行初始化环境(设定好堆.栈.入口.中断向量表),这部分要用汇编实现,下面是…
我把之前在学习嵌入式Linux和工作中遇到问题和相关经验等,一起整理到这里,方便自己查阅和学习,温故而知新,如果能帮助到您,请帮忙点个赞: 本文的宗旨 嵌入式Linux 的项目通常需要一个团队来开发,如果是Android的项目则涉及到的工作内容是Driver,HAL,Framework以及上层应用,更加复杂:曾经是客户的一个ODM订单,200K的量,上头比较重视,因为项目比较赶,加上我有一些Linux下驱动的经验,所以我临危受命被调到这个项目组:作为一只菜鸟,看了几个子系统,读了一点内核的源码,…
最近在学习AArch64的SVE技术时,发现目前可以在网上找到的gcc版本都不支持SVE intrinsic方式调用,在看文档时发现,GCC要到2020年的GCC10时才会支持: 在github上看到了gcc仓库里存在一个名为aarch64/sve-acle-branch的分支: 然后将这个分支的代码下载下来进行交叉编译,然后去编译用SVE intrinsic方式实现的SVE测试程序,发现果然可以编过,也可以运行.编译方法参考交叉编译用于生成aarch64指令的GCC (9.2),这里有一份已经…
参考 Building GCC as a cross compiler for Raspberry Pi How to Build a GCC Cross-Compiler 环境 PC: ubuntu18.04 64位 (Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz) GCC:gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 正文 下面是我们交叉编译GCC用到的三个软件包:binutils,glibc以及gcc,…
错误如下: ../.././libgcc/../config-ml.: enable_libstdc++_v3=yes: command not found make[]: Entering directory `/mnt/lfs/sources/gcc-/x86_64-lfs-linux-gnu/libgcc' Makefile:: ../.././gcc/libgcc.mvars: No such file or directory make[]: *** No rule to make t…
为什么要在标题前面加了详细两个字,就是为了吸引看文章的你还有写文章的我这种小白,我是从坑里面爬出来了. 废话少说.... 问题就是这样子了,至于解决办法,在网上搜索了很久,大多数以一段英文作为解决办法,... I think that the warning is accurate; the mangling of va_list has indeed changed on ARM in GCC 4.4 in order to conform to the ARM ABI specificati…
https://sourceware.org/binutils/docs/as/ARM-Options.html https://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/i386-and-x86_002d64-Options.html 9.4.1 Options -mcpu=processor[+extension...] This option specifies the target processor. The assembler will issue a…
在进行交叉编译工具链安装时,有三种方法: 1.源码编译,手动安装 2.二进制可执行文件直接安装 3.直接解压工具链,手动修改环境变量 为了方便,我们多用方法3进行安装.但是问题来了,你的工具链制作时有可能是针对32位OS的,但是你的虚拟机有可能是64位的. 这就导致一个问题: 修改了环境变量后,source以下,用tab按键能补齐命令,但是执行"cross-compiler-gcc -v"命令时,出现以下错误提示: bash:/opt/...../cross-compiler-gcc:…
1.问题描述 由于安装VS15 Preview 5,搞的系统由重新安装一次:在用vscdoe编译go语言时,出现以下问题: # odbcexec: "gcc": executable file not found in %PATH%exit status 2 2.解决方案 2.1 mingw 64 MinGW分为较早开发的MinGW32和之后为编译64位程序开发的MinGW-w64,MinGW32只能编译32位的程序,而mingw64不仅能编译64位程序,也能编译32位程序,还能进行交…
交叉编译工具链是为了编译.链接.处理和调试跨平台体系结构的程序代码,在该环境下编译出嵌入式Linux系统所需要的操作系统.应用程序等,然后再上传到目标板上. 首 先要明确gcc 和arm-linux-gcc的区别,gcc是x86架构的C语言编译器,编译出来的程序在本地执行,而arm-linux-gcc是跨平台的C语言编译 器,编译出来的程序在目标班上执行,嵌入式开发应该使用交叉编译工具链,下面给出详细的 Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1安…
0.环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS:官网下的的raspbian-jessie. 推荐在root用户登录下操作,参考设置root登录 1.为什么需要交叉编译 在Ubuntu上直接编译一个.c源文件可以用系统自带的gcc编译器编译test.c gcc test.c -o test 然后执行生成的二进制文件 ./test 交叉编译就是把编译的过程在LINUX…
1. 什么是gcc gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器.最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++.java.Pascal等语言.gcc支持多种硬件平台. 2. gcc的特点 gcc是一个可移植的编译器,支持多种硬件平台.例如ARM.X86等等. gcc不仅是个本地编译器,它还能跨平台交叉编译.所谓的本地编译器,是指编译出来的程序只能够在本地环境进行运行.而gcc编译出来的程序能够在其…
在一个平台上生成另一个平台上的可执行代码.为什么要大费周折的进行交叉编译呢?一句话:不得已而为之.有时是因为目的平台上不允许或不能够安装所需要的编译器,而又需要这个编译器的某些特征:有时是因为目的平台上的资源贫乏,无法运行所需要的编译器:有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器. 要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译源代码,最终生成可在目标平台上运行…
一.交叉编译 在一个平台上生成另一个平台上的可执行代码.为什么要大费周折的进行交叉编译呢?一句话:不得已而为之.有时是因为目的平台上不允许或不能够安装所需要的编译器,而又需要这个编译器的某些特征:有时是因为目的平台上的资源贫乏,无法运行所需要的编译器:有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器. 要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译源代码,最终生成可在…
把工程文件交叉编译到arm上运行,着实花费了一番功夫. 首先遇到的错误是 X uses VFP register arguments, B does not 百度了一下,发现是硬浮点和软浮点的问题,原先是思路是改变X的编码方式,迁就于Y,后来怎么弄都不行,改变思路,用armv7-linux的编译器重新编几个库.   1.libosscore.a 下载OSS-master.zip 这个库是用cmake编译的, mkdir build  保证cmake出来的文件和原来的文件区分开 cd build…
build.host和target    在交叉编译中比较常见的一些参数就是build.host和target了,正确的理解这三者的含义对于交叉编译是非常重要的,下面就此进行解释 --build=编译该软件所使用的平台 --host=该软件将运行的平台 --target=该软件所处理的目标平台 我们以 gcc 为例子来 讲解 这三者的作用 在gcc编译中我们使用 ./configure --build=编译平台 --host=运行平台 --target=目标平台 [各种编译参数] 来配置gcc的…
原文:http://www.cnblogs.com/Jasonsblog/p/3757985.html http://blog.csdn.net/sno_guo/article/details/16897577 最近开始正式接触QT开发,网上看了些移植教程都写的有点乱,博客园的emouse思·睿有一篇写的很好的文章,下面是文章的链接 http://www.cnblogs.com/emouse/archive/2013/01/29/2881311.html 我结合自己编译移植过程中遇到的问题重新整…
原创作品,转载请注明出处 copyright:weishusheng   2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.el6.x86_64 交叉编译器路径:/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux- 开发板:FL2440 开发板运行内核:linux3.0 开发板文件系统:initramfs easycwmp依赖的许多软件的Makefile都是用cmake语法生成…