gcc编译RTT,STM32L4平台 math如何加入,急

发表在 Kernel7 天前 [复制链接] 12 85

本帖最后由 znmcu123 于 2019-11-8 14:28 编辑
; Q  z3 T' c! C! \$ s( i
! ^  |+ B% {, Y" n% W2 J: `0 K) L" b* E8 p2 c
使用scons进行构建,gcc
6 K8 H/ L( I2 Y* Z; ^) s2 ]在rtconfig.py中如上图,在LFFLAGS,末尾增加了-lm
% L9 ^. o, p0 f7 g' \. P" w在相应的rtthread.map中,有看到
+ l! ?6 ~* [8 R8 g; |5 p2 [ 企业微信截图_157319054822.png
1 N) y0 ]: ?& ]/ i9 R# ^0 l& i这应该是libm.a已经加入到了LINK中了
5 o; h% }2 _/ C' P# x9 Q9 j然后我在程序中去#include <math.h>,调用sin- }" T4 }8 V- {6 [. o
找不到函数  r2 W: ]; C8 k; n
企业微信截图_15731942403291.png - b$ _1 a1 k- |
企业微信截图_15731941953718.png ' ?% G# N  F- W# i: \1 @! M
; b1 O5 I" _! G) X' J
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 7 天前 | 显示全部楼层
这个问题已经卡了1天,不明白为什么?
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
用的什么 C 库? newlib 打开了吗
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
打开了,了解,在gcc下是要用newlib的 222.png
$ C& R" n4 v; B2 `3 K
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
顶上顶上顶上顶上顶上
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
Snipaste_2019-11-08_16-05-26.png
; f" N) {8 q7 V- k: G( q5 V/ I4 `$ c2 M( p
最新的 master 代码 stm32l475-atk-pandora 上 scons 是可以通过8 q, P. U- ~. f
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
我按您的方法,重新下载一份rtt,然后通过gcc编译,调用sin是OK的因为用的是minilib,里面有math.c,有sin的实现,而不是链接的libm.a- j/ w+ D5 c' ^
! f5 M* R; |" I8 \
对于除了sin cos之外的数学函数,如pow等,仍然是会报错的
3 K: J5 h; j+ L8 s2 j& U1 c; C7 @8 N) n
ssss.png - _% b% a- t4 F2 d8 \
ddd.png
# m; q% P# t; s
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
基于官方的全新的工程,pandora
( @- O5 U% ?& K* K9 m我在main中调用math.h中的pow,会编译找不到/ o: `9 t( g* W/ M/ F( I
在rtconfig.py中添加了-lm,在map中看到有LOAD libm.a这一条) y* Y' |0 \* O4 ]8 v) ]7 [! L1 g
fff.png
  ^, u: @2 }' R, v% n2 Z0 X kkk.png
! i6 x( ?& f$ E8 }* t
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
可以看下 newlib 中是否有 pow 这个接口
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
5555.png
  B- @* ]1 N2 f+ _& E7 `9 c* n- O) q1 K; Y
newlib中,没有数学库,只有几个文件而已  _% \7 G  M3 r1 f1 l# I: q5 w
使用道具 举报 回复
发表于 7 天前 | 显示全部楼层
znmcu123 发表于 2019-11-8 18:513 j& E2 S1 @, j' s+ i: A0 ^/ N; s! F1 ^
newlib中,没有数学库,只有几个文件而已

" G0 J+ _8 k" y1 V- Y- E5 {不是看这里的,这里只是一些系统桩,应该看 newlib 库本身
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
znmcu123 发表于 2019-11-8 17:34
3 N0 F, }- @8 R我按您的方法,重新下载一份rtt,然后通过gcc编译,调用sin是OK的因为用的是minilib,里面有math.c,有sin ...

$ L2 m" r0 x# G6 }1 M编译的时候是会提示 pow 这个函数没有找到,,,,
使用道具 举报 回复
发表于 6 天前 | 显示全部楼层
tyustli 发表于 2019-11-9 09:08
5 |" `7 M+ U1 \' F$ ]! I编译的时候是会提示 pow 这个函数没有找到,,,,
/ a- A; |4 Q8 t# \* c' B+ \
网上找段代码,自己实现一个吧
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表