尝试了 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行,体积也非常大,但是当链接成最终的可执行文件后,未被使用的符号都被丢弃了。所以你完全不用担心静态库的大小问题,因为它不会直接影响最后的可执行文件大小。仅仅只是符号的话,不用就会自动优化掉的吧