完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在windows7上编译rtt,考虑到用cygwin上的git,svn同步代码方便,希望把scons编译方式也加到cygwin上,遇到了一个
sh: arm-none-eabi-gcc: command not found 的问题 具体步骤如下: 1 安装cygwin,选择full install(带有python) 2 安装scons (python setup.py install) 3 安装arm-2012.09-63-arm-none-eabi-i686-mingw32.tar.bz2 (tar -jxvf arm-2012.09-63-arm-none-eabi-i686-mingw32.tar.bz2) 4 将arm-2012.09-63-arm-none-eabi-i686-mingw32解压后的路径export到PATH里 在wh44b0下做scons提示如下 $ scons scons: Reading SConscript files ... /opt/CrossCompile/CodeSourcery/Sourcery_CodeBench_for_ARM_EABI/bin:/cygdrive/c/linux/rt-thread/tool/arm-2012.09/bin/:/home/dillon.min/bin:/cygdrive/c/software/jd-gui-0.3.5.windows:/usr/local/bin:/usr/bin:/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Old-Pc-bak/d/share/android-sdk_r10-windows/tools:/cygdrive/c/Old-Pc-bak/d/software/java反编译:/cygdrive/c/Program Files/7-Zip:/cygdrive/c/Python25:/cygdrive/c/Python25/Scripts:/cygdrive/c/Program Files (x86)/Beyond Compare 3:/usr/lib/lapack scons: done reading SConscript files. scons: Building targets ... scons: building associated VariantDir targets: build arm-none-eabi-gcc -o build/application.o -c -mcpu=arm720t -D__FLASH_BUILD__ -O2 -Ibuild -I. -I/cygdrive/c/linux/rt-thread/rt-2457-git -I/cygdrive/c/linux/rt-thread/rt-2457-git/build -I/cygdrive/c/linux/rt-thread/rt-2457-git/include -I/cygdrive/c/linux/rt-thread/rt-2457-git/libcpu/arm/s3c44b0 -I/cygdrive/c/linux/rt-thread/rt-2457-git/libcpu/arm/common application.c sh: arm-none-eabi-gcc: command not found scons: *** [build/application.o] Error 127 scons: building terminated because of errors. 但是我手动执行 arm-none-eabi-gcc -o build/application.o -c -mcpu=arm720t -DFLASH_BUILD -O2 -Ibuild -I. -I/cygdrive/c/linux/rt-thread/rt-2457-git -I/cygdrive/c/linux/rt-thread/rt-2457-git/build -I/cygdrive/c/linux/rt-thread/rt-2457-git/include -I/cygdrive/c/linux/rt-thread/rt-2457-git/libcpu/arm/s3c44b0 -I/cygdrive/c/linux/rt-thread/rt-2457-git/libcpu/arm/common application.c 是可以把application.o生成到build下的 可能问题就出在scons里对arm-none-eabi-gcc查找上出了问题,在building.py里加了一个 print os.environ[‘PATH’] 说明gcc的工具是在路径里的,就比较迷惑了 |
|
相关推荐
8个回答
|
|
scons用的路径是和系统中的PATH变量指向的路径是不一样的,需要在rtconfig.py中指定
|
|
|
|
arm-none-eabi-gcc找不到的问题解决了,但是又遇到一个问题
需要把CYGPATH这个环境变量设置进去,否则arm-none-eabi-gcc识别不了cygwin下的头文件路径 在bash下,做下列命令就可以了 export CYGPATH=c:/cygwin/bin/cygpath 再手动做编译 arm-none-eabi-gcc -o build/application.o -c -mcpu=arm720t -DFLASH_BUILD -O2 -Ibuild -I. -I/cygdrive/c/linux/rt-thread/rt-2457-git -I/cygdrive/c/linux/rt-thread/rt-2457-git/build -I/cygdrive/c/linux/rt-thread/rt-2457-git/include -I/cygdrive/c/linux/rt-thread/rt-2457-git/libcpu/arm/s3c44b0 -I/cygdrive/c/linux/rt-thread/rt-2457-git/libcpu/arm/common application.c 是可以编译 但是做scons就报错 $ scons scons: Reading SConscript files … scons: done reading SConscript files. scons: Building targets … scons: building associated VariantDir targets: build arm-none-eabi-gcc -o build/application.o -c -mcpu=arm720t -DFLASH_BUILD -O2 -Ibuild -I. -I/cygdrive/c/linux/rt-thread/rt-2457-git -I/cygdrive/c/l/cygdrive/c/linux/rt-thread/rt-2457-git/include -I/cygdrive/c/linux/rt-thread/rt-2457-git/libcpu/arm/s3c44b0 -I/cygdrive/c/linux/rt-thread/rt-2457-gi application.c: fatal error: rtthread.h: No such file or directory compilation terminated. scons: * [build/application.o] Error 1 scons: building terminated because of errors. 找不到rtthread.h 不知道怎么把CYGPATH这个环境变量和scons里调用arm-none-eabi-gcc这个过程糅合到一起? |
|
|
|
|
|
|
|
没弄明白lz为什么会纠缠在CYGPATH上。 最近在windows7上编译rtt,考虑到用cygwin上的git,svn同步代码方便,希望把scons编译方式也加到cygwin上 主要是这个目的,修改,编译,上传,下载都在cygwin上干 |
|
|
|
|
|
|
|
注意这是交叉编译,arm-none-eabi-gcc 不应该使用 cygwin下的头文件…… 如果用了,很有可能出错而且很难 debug……
由此那个 CYGPATH 应该是无关的…… 我自己倒是没有在 cygwin 下用 scons 弄过,貌似 cygwin 自带的 python 版本比较老,用着不舒心…… |
|
|
|
我觉得不是arm-none-eabi-gcc的问题,我试过在cygwin下单独编译一个c文件,只要设置了CYGPATH环境变量,就可以正常编译,但是到了scons里面,就不行了,后来debug了一番,也没找到原因为什么scons调用的arm-none-eabi-gcc找不到头文件,就放弃了。
我觉得用Makfile方式编译linux应该是没有问题的话,一直没有实验过,回头有空试试看。 |
|
|
|
原来Code Sourcery会专门处理这个环境变量。
这个最本质的原因是: scons在进行编译时(例如调用编译器gcc或其它的编译器),它会把环境变量完全的重新创建一个,这个环境变量环境仅包含最最基本的配置。通过这样的方式,编译器将会得到一个最干净的环境变量环境。然后在这个环境下,scons会把脚本中配置的环境应用上去。 所以,你在外面设置的PATH、CYGPATH等等的,传递到编译器时,统统没有了。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
198 浏览 0 评论
1371 浏览 1 评论
飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
783 浏览 0 评论
飞凌嵌入式-ELFBOARD 4.3吋电容触摸液晶模块简介第三期 :机械机构说明
938 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-i2c与从设备通讯编程示例之开发板测试
1603 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 09:25 , Processed in 0.589649 second(s), Total 54, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号