gpt4 book ai didi

c++ - gpsd的交叉编译显示 “unrecognized option”

转载 作者:行者123 更新时间:2023-12-02 10:32:19 30 4
gpt4 key购买 nike

我正在Ubuntu 16.04上针对ARM体系结构交叉编译gpsd3.20。如您所知,gpsd使用Sconsctruct来编译源代码。在我进行交叉编译时,需要创建libgps.so的那一刻显示了unrecognized option '-Wl, -Bsymbolic'错误。

在这里发布问题之前,我尝试过检查我的工具链二进制文件,发现如果我手动运行此行:

sudo ./arm-v7a-linux-gnueabihf-ld -o test/gpsd-3.20/libgps.so.25.0.0 -pthread -shared -Wl,-Bsymbolic-functions -Wl,-soname=libgps.so.25 test/gpsd-3.20/os_compat.os test/gpsd-3.20/rtcm2_json.os test/rtcm3_json.os test/gpsd-3.20/shared_json.os test/gpsd-3.20/timespec_str.os test/gpsd-3.20/libgpsmm.os -L. -lrt -lm -lrt

上面的命令可以打印出我之前提到的确切错误。但是,如果我运行确切的命令将 ld替换为 gcc,则没有任何错误。
sudo ./arm-v7a-linux-gnueabihf-gcc -o test/gpsd-3.20/libgps.so.25.0.0 -pthread -shared -Wl,-Bsymbolic-functions -Wl,-soname=libgps.so.25 test/gpsd-3.20/os_compat.os test/gpsd-3.20/rtcm2_json.os test/rtcm3_json.os test/gpsd-3.20/shared_json.os test/gpsd-3.20/timespec_str.os test/gpsd-3.20/libgpsmm.os -L. -lrt -lm -lrt

在检查 arm-v7a-linux-gnueabihf-gcc --help后,我发现gcc支持 -Wl选项,而在 arm-v7a-linux-gnueabihf-ld中它不支持 -Wl选项。因此,现在我不确定如何更改SConstruct文件,以使其不执行 ld,而我希望它执行 gcc,尤其是对于libgps.so部分。

最佳答案

(无法评论),作为答案:您是否尝试设置env.-var .:export LD=arm-v7a-linux-gnuabihf-gcc
Gcc接受-Wl,XXX并将XXX传递给链接器。

关于c++ - gpsd的交叉编译显示 “unrecognized option”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61810609/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com