嵌入式Linux平台上Eclipse C++开发环境的建立

dreamliner 2010-08-09

先装JRE, sudo apt-get install sun-java6-jre

下载eclipse C++的压缩包,解压开袋即食

新建项目,右键属性,C/C++bulid,Setting,Configuration新添加一个,Command处填写arm-linux-gcc,编译,,,

又出现arm-linux-gcc not found ! 明明arm-linux-gcc -v 没问题!

杀手锏,gedit /etc/profile /etc/environment /etc/bash.bashrc ~/.bashrc ~/.profile

全都加上export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/usr/local/bin:/usr/local/arm/4.3.2/bin"

ok~

but~还有新的问题:

**** Build of configuration arm for project hello ****

make all

Building file: ../src/hello.c

Invoking: GCC C Compiler

/usr/local/arm/4.3.2/bin/arm-linux-gcc -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/hello.d" -MT"src/hello.d" -o"src/hello.o" "../src/hello.c"

Finished building: ../src/hello.c

 

Building target: hello

Invoking: GCC C Linker

gcc  -o"hello"  ./src/hello.o  

/usr/bin/ld: ./src/hello.o: Relocations in generic ELF (EM: 40)

./src/hello.o: could not read symbols: File in wrong format

collect2: ld returned 1 exit status

make: *** [hello] Error 1

产生错误:

could not read symbols: File in wrong format,

找到这个hello.o,执行file hello.o, 显示:ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped,没错阿

仔细看日志,

arm-linux-gcc已经编译处了。0文件,参数是

arm-linux-gcc

-O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/hello.d" -MT"src/hello.d" -o" o文件名 原文件名,难道是参数有错?还有一点可能,出错明显是link过程产生的

看日志,/usr/bin/ld: ./src/hello.o: Relocations in generic ELF (EM: 40),,,居然用这个ld来连接,,,而没用我的arm-linux-ld,不报错才怪,但是,eclipse在那里设置ld呢,,,

猜想没错,工程属性设置中,

Linker和Assembler的命令分别换成/usr/local/arm/3.4.1/bin/arm-linux-gcc和

/usr/local/arm/3.4.1/bin/arm-linux-as

这样link中间.o文件文件的时候就OK了。

相关推荐