Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
求解答一个SCONS的问题
发布于 2015-09-12 14:11:46 浏览:2592
订阅该版
[tocm] 各位大神们: 以前没有使用过SCONS作为编译工具,所以现在遇到了一个小问题,问题如下: 环境: mac-OS 交叉编译工具: arm-none-eabi-gcc4.9.3 SCONS版本: 2.3.6 目标平台: stm32f103 需求: 需要编译 C和C++ 混合的工程。 问题: 在rtconfig.py中定义了CC和CXX,但是在编译时,CC的确用的交叉编译gcc,合适CXX仍然用的本地的g++。 BTW:开始考虑是不是自己的SConscript写的有问题,所以就尝试在rtt repo中编译了components里面的CPLUSPLUS那个项目,出现的问题是一样的,仍然用的本地g++。 求大神门解答一下 [s:154] [s:154] 附录: 1. rtconfig.py的内容: ``` import os # toolchains options ARCH='arm' CPU='cortex-m3' CROSS_TOOL='gcc' if os.getenv('RTT_CC'): CROSS_TOOL = os.getenv('RTT_CC') # cross_tool provides the cross compiler # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' EXEC_PATH = '/Users/schumy/gcc-arm-none-eabi/bin' elif CROSS_TOOL == 'keil': PLATFORM = 'armcc' EXEC_PATH = '' elif CROSS_TOOL == 'iar': PLATFORM = 'iar' IAR_PATH = '' if os.getenv('RTT_EXEC_PATH'): EXEC_PATH = os.getenv('RTT_EXEC_PATH') BUILD = '' STM32_TYPE = 'STM32F10X_MD' if PLATFORM == 'gcc': # toolchains PREFIX = 'arm-none-eabi-' CC = PREFIX + 'gcc' CXX = PREFIX + 'g++' AS = PREFIX + 'as' AR = PREFIX + 'ar' LINK = PREFIX + 'ld' TARGET_EXT = 'axf' SIZE = PREFIX + 'size' OBJDUMP = PREFIX + 'objdump' OBJCPY = PREFIX + 'objcopy' DEVICE = ' -mcpu=cortex-m3 -march=armv7-m -mthumb' CFLAGS = DEVICE + ' -ffunction-sections -fdata-sections -nostdlib -DMCU_STM32F103T8' CXXFLAGS = DEVICE + ' -fno-exceptions -fno-rtti -DMCU_STM32F103T8' AFLAGS = DEVICE LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-stm32.map,-cref,-u,Reset_Handler -T stm32_rom.ld' CPATH = '' LPATH = '' if BUILD == 'debug': CFLAGS += ' -O0 -gdwarf-2' AFLAGS += ' -gdwarf-2' else: CFLAGS += ' -O2' POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin ' + SIZE + ' $TARGET ' ```
查看更多
6
个回答
默认排序
按发布时间排序
schumy
2015-09-12
这家伙很懒,什么也没写!
这个是编译时出错的输出。 ``` cons --verbose scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... scons: building associated VariantDir targets: build/bsp g++ -o build/bsp/maple/wirish/HardwareSPI.o -c -mcpu=cortex-m3 -march=armv7-m -mthumb -ffunction-sections -fdata-sections -nostdlib -DMCU_STM32F103T8 -O2 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -DRT_USING_MINILIBC -I. -Iapplications -Idrivers -IEFlash -ILibraries/STM32F10x_StdPeriph_Driver/inc -ILibraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x -I/Users/schumy/git/rt-thread/rtt/components/CMSIS/Include -Imaple/libmaple -Imaple/libmaple/include -Imaple/libmaple/stm32f1/include -Imaple/libmaple/usb/stm32f1 -Imaple/libmaple/usb/usb_lib -Imaple/wirish -Imaple/wirish/include -Imaple/wirish/boards/wrtnode2/include -Imaple/wirishC/include -I/Users/schumy/git/rt-thread/rtt/include -I/Users/schumy/git/rt-thread/rtt/libcpu/arm/cortex-m3 -I/Users/schumy/git/rt-thread/rtt/libcpu/arm/common -I/Users/schumy/git/rt-thread/rtt/components/drivers/include -I/Users/schumy/git/rt-thread/rtt/components/drivers/spi -I/Users/schumy/git/rt-thread/rtt/components/drivers/include -I/Users/schumy/git/rt-thread/rtt/components/drivers/include -I/Users/schumy/git/rt-thread/rtt/components/finsh -I/Users/schumy/git/rt-thread/rtt/components/libc/minilibc -I/Users/schumy/git/rt-thread/rtt/components/utilities/ymodem maple/wirish/HardwareSPI.cpp clang: warning: argument unused during compilation: '-mcpu=cortex-m3' clang: warning: argument unused during compilation: '-mthumb' error: unknown target CPU 'armv7-m' scons: *** [build/bsp/maple/wirish/HardwareSPI.o] Error 1 scons: building terminated because of errors. ```
bernard
2015-09-12
这家伙很懒,什么也没写!
想起来了,你的SConstruct估计还是老的,需要类似: ``` env = Environment(tools = ['mingw'], AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, AR = rtconfig.AR, ARFLAGS = '-rc', LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) ``` 注意调整下rtconfig.CXXFLAGS,简单些可以把CXXFLAGS = CFLAGS.
schumy
2015-09-12
这家伙很懒,什么也没写!
好的,我试试先~
schumy
2015-09-12
这家伙很懒,什么也没写!
>想起来了,你的SConstruct估计还是老的,需要类似: > > > >``` > >env = Environment(tools = ['mingw'], > AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, > CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, > CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, > AR = rtconfig.AR, ARFLAGS = '-rc', > LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) > >``` > > >注意调整下rtconfig.CXXFLAGS,简单些可以把CXXFLAGS = CFLAGS. --- 果然是这个问题,谢谢~~ 昨天本来想到可能是因为CXX没有被设置到环境变量了, 然后还傻乎乎的看了半天scons的源码,也没找到,,, 忘记SConstruct了。。。。 谢谢大神~
bernard
2015-09-12
这家伙很懒,什么也没写!
[s:158] 有些东西可以稍微到论坛上问问,我会给出个大致方向的
撰写答案
登录
注册新账号
关注者
0
被浏览
2.6k
关于作者
schumy
这家伙很懒,什么也没写!
提问
2
回答
5
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
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
【NXP-MCXA153】 定时器驱动移植
2
GD32F450 看门狗驱动适配
3
【NXP-MCXA153】看门狗驱动移植
4
RT-Thread Studio V2.2.9 Release Note
5
CherryUSB的bootuf2配置
热门标签
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
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
15
个答案
1
次被采纳
Ryan_CW
5
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
8
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部