Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SCons
arm-none-eabi ,cygwin 编译的一个问题
发布于 2012-12-03 11:48:30 浏览:8865
订阅该版
最近在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 -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 ``` 是可以把application.o生成到build下的 可能问题就出在scons里对`arm-none-eabi-gcc`查找上出了问题,在building.py里加了一个 `print os.environ['PATH']` 说明gcc的工具是在路径里的,就比较迷惑了
查看更多
13
个回答
默认排序
按发布时间排序
bernard
2012-12-03
这家伙很懒,什么也没写!
scons用的路径是和系统中的PATH变量指向的路径是不一样的,需要在rtconfig.py中指定
bbstr
2012-12-03
这家伙很懒,什么也没写!
`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 -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 ``` 是可以编译 但是做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 -D__FLASH_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:19:22: 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`这个过程糅合到一起?
bernard
2012-12-03
这家伙很懒,什么也没写!
没弄明白lz为什么会纠缠在CYGPATH上。 rtconfig.py中,去修改EXEC_PATH路径去。
bbstr
2012-12-03
这家伙很懒,什么也没写!
>没弄明白lz为什么会纠缠在CYGPATH上。 最近在windows7上编译rtt,考虑到用cygwin上的git,svn同步代码方便,希望把scons编译方式也加到cygwin上 主要是这个目的,修改,编译,上传,下载都在cygwin上干
bernard
2012-12-03
这家伙很懒,什么也没写!
那么就在rtconfig.h中写入正确的工具链目录。 CYGPATH不知道用来干什么的
grissiom
2012-12-04
这家伙很懒,什么也没写!
注意这是交叉编译,arm-none-eabi-gcc 不应该使用 cygwin下的头文件…… 如果用了,很有可能出错而且很难 debug…… 由此那个 CYGPATH 应该是无关的…… 我自己倒是没有在 cygwin 下用 scons 弄过,貌似 cygwin 自带的 python 版本比较老,用着不舒心……
bbstr
2012-12-10
这家伙很懒,什么也没写!
>注意这是交叉编译,`arm-none-eabi-gcc` 不应该使用 `cygwin`下的头文件…… 如果用了,很有可能出错而且很难 debug…… 我觉得不是`arm-none-eabi-gcc`的问题,我试过在cygwin下单独编译一个c文件,只要设置了CYGPATH环境变量,就可以正常编译,但是到了scons里面,就不行了, 后来debug了一番,也没找到原因为什么scons调用的`arm-none-eabi-gcc`找不到头文件,就放弃了。 我觉得用Makfile方式编译linux应该是没有问题的话,一直没有实验过,回头有空试试看。
bernard
2012-12-10
这家伙很懒,什么也没写!
cygpath到底是用来干什么的,难道类似path吗?
bbstr
2012-12-10
这家伙很懒,什么也没写!
>cygpath到底是用来干什么的,难道类似path吗? http://doc.ironwoodlabs.com/arm-arm-none-eabi/html/getting-started/sec-setting-up-environment.htm 看这个里面有解释
bernard
2012-12-10
这家伙很懒,什么也没写!
原来Code Sourcery会专门处理这个环境变量。 这个最本质的原因是: scons在进行编译时(例如调用编译器gcc或其它的编译器),它会把环境变量完全的重新创建一个,这个环境变量环境仅包含最最基本的配置。通过这样的方式,编译器将会得到一个最干净的环境变量环境。然后在这个环境下,scons会把脚本中配置的环境应用上去。 所以,你在外面设置的PATH、CYGPATH等等的,传递到编译器时,统统没有了。
撰写答案
登录
注册新账号
关注者
0
被浏览
8.9k
关于作者
bbstr
这家伙很懒,什么也没写!
提问
4
回答
29
被采纳
0
关注TA
发私信
相关问题
1
scons不支持python3吗?
2
编译又出现问题
3
BSP目录下做好一个项目后,怎么把发给别人的包裁剪的小...
4
为什么重新scons --target=mdk 后,以前在MDK工程里保存的C文
5
Scons 添加Group,SConscript已经执行,源码却没有添加进工程
6
scons如何指定输出目录?
7
新人求助。
8
想用env 工具自己构建编译环境想用vscode 进行一些简单程序
9
关于scons脚本问题
10
使用scons --target=makefile的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部