您尚未登录。

楼主 # 2024-08-07 18:01:19

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 660
积分: 793
个人网站

RTOS SDK的Dynamic Module 添加C++编译选项失败

按照10.1. Dynamic Module 使用指南生成的aic-dm-apps默认编译及运行测试都没问题。

在尝试测试C++编译,添加C++编译选项时编译失败:

编译配置文件 aic-dm-apps/hello/SConscript 添加 CXXFLAGS

from building import *

src = Glob('*.c') + Glob('*.cpp')
cwd = GetCurrentDir()

CPPPATH = [cwd]
CXXFLAGS = ' -std=c++11'

group = DefineGroup('', src, depend = [''], CPPPATH=CPPPATH, CXXFLAGS=CXXFLAGS)

Return('group')

编译输出:

$ scons --app=hello
scons: Reading SConscript files ...
args.outfile:  /home/chenss/projects/test/source/luban-lite/partition_table.h
scons: done reading SConscript files.
scons: Building targets ...
CXX hello/cpp_test.o
riscv-none-embed-g++: error:  -std=c++11: No such file or directory
scons: *** [hello/cpp_test.o] Error 1
scons: building terminated because of errors.

最近编辑记录 海石生风 (2024-08-07 18:03:09)

离线

楼主 #1 2024-08-07 18:24:13

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 660
积分: 793
个人网站

Re: RTOS SDK的Dynamic Module 添加C++编译选项失败

用nm工具看了下cpp源码编译生成的.o文件,C++运行环境似乎要以下这些符号,看来不好弄。

T _Z8cpp_testv
U _ZNSt8ios_base4InitC1Ev
U _ZNSt8ios_base4InitD1Ev
U _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
U _ZSt4cout
b _ZStL8__ioinit

最近编辑记录 海石生风 (2024-08-07 18:26:36)

离线

楼主 #2 2024-08-08 13:24:34

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 660
积分: 793
个人网站

Re: RTOS SDK的Dynamic Module 添加C++编译选项失败

这种开发方式除了C++支持问题,还有一个严重的限制就是不能在shell里查看app启动的线程,看来还是得放弃这种开发方式。

另外,发现即使是在SDK里写的app也不支持C++的iostream,只要一#include <iostream>就跑不起来。编译选项POSIX和C++支持均已选中。

最近编辑记录 海石生风 (2024-08-08 13:26:38)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn