导航:首页 > 源码编译 > 编译gcc给开发版

编译gcc给开发版

发布时间:2022-05-17 18:11:27

① 在RedHat9.0(2.4内核)操作系统下怎样为开发板编译2.6驱动模块

可以,你把环境搭建好就可以编译大部分。
makefile中指定好平台。如果本身驱动不在kernel代码树里,把内核的代码头文件等等手动设定好,如果驱动用到其他库或代码也手动指定好,不要让编译器自动搜索本机环境。

还要查阅下文档,有些代码可能压根就没有为交叉编译而特别编写,这类代码的交叉编译需要你打patch、重写makefile

② arm-linux-gcc 编译后,在开发板上没法运行

你是不是说反了?或者是说你的环境变量已经有arm-linux-gcc了,而你又用了另一个交叉编译版本,所以导致不能运行?

③ arm-linux-gcc -o hello hello.c 后生成的文件,怎么烧写到ARM9开发板中

arm-linux-gcc编译出来的其实就是在linux下可以执行的程序,只不过运行这个linux的CPU需要是ARM的。所以,只要把这个文件传到已可运行linux的目标板上就行(可通过ftp等手段),然后修改这个可执行文件的权限chmod +x 文件名,就可以运行了。
另外,要转换成烧写的bin文件是用另一个编译工具arm-elf-gcc,这个编译出来的不是可执行文件,而直接是程序的二进制形式。这才需要通过烧写flash的方式替换目标板的操作系统,当然肯定不能是hello.c这么简单的程序。

④ 在ubuntu下用arm-linux-gcc编译出的应用放到jz2440开发板下提示找不到是什么原因

我怀疑你放的程序位置是否是正确的,你写一个脚本文件,随便执行一些无关紧要的命令,比如ls之类的,运行一下看看结果。

⑤ arm开发板如何运行自己写的程序

用户程序insmod 核心模块加载:具体如下:

核心模块编译完成后,基本上是个未经符号定位的目标文件(object)(当然,如果这个object又是一些子object经过ld -r生成的话,则子object之间的符号定位是已经完成的),object是一种可重定位的代码,它可以加载到不同位置的内存执行。而真正加载进核心,并成为核心的一部分,则是用户程序insmod和核心几个系统调用共同完成的。在此过程中,insmod主要完成或通过系统调用完成以下的工作:
1)由参数找到模块文件,如insmod foo.o,模块文件就是foo.o,根据模块文件计算出模块文件所需的内存大小
2)调用系统调用create_mole,为该模块分配核心空间内存
3)调用系统调用query_mole,得到核心提供的符号表,与系统调用create_mole的返回值(核心模块首地址)加在一起对模块进行重定位。
4)在用户空间为核心模块分配内存,并往该段内存复制一个经过定位的object映象。
5)调用系统调用init_mole,将用户内存中的模块映象到相应的核心空间(首地址为create_mole的返回值)。
6)释放用户内存,中止insmod运行。
如果一切顺利,没有出现未定位的符号,则核心模块object就融入系统,成为系统的一部分了。
核心模块的加载过程对核心来说实际是个“静态链接”的过程,这和用户程序动态链接运行过程再链接需要的代码还是不太一样的,当然,object的可重定位特性保证了链接后的代码正常运行,这点倒是比较相似的。
以上回答你满意么?

⑥ 用GCC编译的文件能否在ARM开发板上运行

如果用linux自身带的gcc,那么很遗憾,不能。要编译出能够在开发板上运行的文件,需要安装相应的内核和工具链,用安装之后的工具链编译出来的才能下载到开发板上运行。这就是所谓的“交叉编译”。

⑦ gcc编译器可以用于单片机的开发吗

可以的,需要交叉编译。我们公司就在做这个。原来使用sdcc做的编译器,现在改为gcc了。

⑧ arm-linux-gcc编译后的可执行文件,能通过串口加载到ARM7开发板上么

这是一个文件,所以只要是传文件的形式都可。前提是开发板上已经运行了linux系统,并且有相应的传送软件。
串口的话要两边都打开串口终端,比如超级终端,tinyCOM,或者串口调试助手。但是好像很少这样做。
更多的是直接通过ftp来传。
总之,运行了linux的开发板,现在就是一台电脑了。

⑨ gcc编译流程

gcc编译分为四部;

第一步,预编译,将程序中的宏定义等预编译;

第二步,编译,将*.h,*.c等文件编译成为*.o文件;

第三步,汇编;

第四步,连接,将*.o文件连接库,生成可执行文件!

⑩ 如何编译GCC 4.3.2

vi $HOME.profile
[color=Blue]PATH=/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/ucb
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/sfw/lib
export PATH LD_LIBRARY_PATH
alias ll="df -hFufs"
alias m="gmake && gmake install"
PS1="\u@\H# "[/color]
#注意: 把/usr/local的path和LD_LIBRARY_PATH提前到/usr/sfw/lib下面,因为solaris自带的一些命令不是gnu的,在编译过程中可能会报错,ld/ar等命令都需要额外安装!下面的步骤会有叙述!

编译binutils-2.18
cd /tmp; gtar zxvf binutils-2.18.tar.gz
cd binutils-2.18
./configure && m

cd /tmp; gtar zxvf gcc-4.3.2.tar.gz
cd /tmp/ && bzcat zxvf gmp-4.2.1.tar.bz2 && mv gmp-4.2.1 gmp && gtar xvf - && ./configure && m
cd /tmp/ && gtar zxvf mpfr-2.3.2.tar.gz && mv mpfr-2.3.2 mpfr && ./configure -with-gmp-build=/tmp/gmp && m

cd /tmp/gcc-4.3.2 && bzcat zxvf gmp-4.2.1.tar.bz2 && gtar xvf - && mv gmp-4.2.1 gmp
cd /tmp/gcc-4.3.2 && gtar zxvf mpfr-2.3.2.tar.gz && mv mpfr-2.3.2 mpfr

开始编译gcc了
cd /tmp/gcc-4.3.2
./configure --prefix=/tmp/gcc --enable-languages=c,c++ --with-gnu-as --with-as=/usr/local/bin/as --with-gnu-ld --with-ld=/usr/local/bin/ld LD=/usr/local/bin/ld AS=/usr/local/bin/as AR=/usr/local/bin/ar NM=/usr/local/bin/nm RANLIB=/usr/local/bin/ranlib STRIP=/usr/local/bin/strip OBJCOPY=/usr/local/bin/obj OBJDUMP=/usr/local/bin/objmp

阅读全文

与编译gcc给开发版相关的资料

热点内容
光遇安卓怎么转ios教程小米 浏览:959
python儿童 浏览:42
程序员毕业半年后被辞退 浏览:643
开发板系统编译 浏览:392
pdf安装包下载 浏览:50
如何配置foxmail邮箱服务器 浏览:971
python解释器编译器源代码 浏览:113
服务器ip地址正确为什么连不上 浏览:82
飞天开放平台编程指南 浏览:114
文件夹向上一级 浏览:878
apachelinux配置域名 浏览:786
王者荣耀体验服服务器出错是什么意思 浏览:824
程序员对联意思 浏览:550
php追加txt 浏览:519
java验证码jsp 浏览:753
色铅笔画动漫pdf 浏览:260
a文件编译so 浏览:347
单片机power怎么改成接地 浏览:219
https是什么app 浏览:371
androidstudio优化设置 浏览:436