尝试了 rust 嵌入式指南中的:little rust with c ,发现生成的静态库里面链接了很多跟我 foo 函数不相关的符号,比如浮点相关的符号。
我希望能去除掉浮点相关的引用,因为会浪费我的 flash 空间,希望有人给与帮助,多谢
问题已解决,是我引用库的工程里面使用了浮点导致的问题
1
共 4 条评论, 1 页
尝试了 rust 嵌入式指南中的:little rust with c ,发现生成的静态库里面链接了很多跟我 foo 函数不相关的符号,比如浮点相关的符号。
我希望能去除掉浮点相关的引用,因为会浪费我的 flash 空间,希望有人给与帮助,多谢
问题已解决,是我引用库的工程里面使用了浮点导致的问题
评论区
写评论是的
--
👇
chirsz-ever: 仅仅只是符号的话,不用就会自动优化掉的吧
再次感谢。
我今天发现原来是我引用 rust 库的工程里面使用了浮点数,所以才引用了库里面的浮点相关的符号。
--
👇
Pikachu: 一个简单的测试。
首先进行编译。
接下来我们可以使用
objdump -t
查看libtemp.a
,test.o
和test
的符号表。这里省略具体内容,简单列一下情况。libtemp.a
:rust_add
和rust_minus
;test.o
:rust_add
且处于UND
状态test
:rust_add
且有值。结论:尽管
libtemp.a
的符号表长达16493行,体积也非常大,但是当链接成最终的可执行文件后,未被使用的符号都被丢弃了。所以你完全不用担心静态库的大小问题,因为它不会直接影响最后的可执行文件大小。一个简单的测试。
首先进行编译。
接下来我们可以使用
objdump -t
查看libtemp.a
,test.o
和test
的符号表。这里省略具体内容,简单列一下情况。libtemp.a
:rust_add
和rust_minus
;test.o
:rust_add
且处于UND
状态test
:rust_add
且有值。结论:尽管
libtemp.a
的符号表长达16493行,体积也非常大,但是当链接成最终的可执行文件后,未被使用的符号都被丢弃了。所以你完全不用担心静态库的大小问题,因为它不会直接影响最后的可执行文件大小。仅仅只是符号的话,不用就会自动优化掉的吧