怎样改变gcc的-l参数所调用ld的路径

发布于 2022-09-18 18:59:44 字数 1452 浏览 12 评论 0

mipsel-linux-gcc -o wpa_supplicant config.o eloop.o common.o md5.o rc4.o sha1.o config_file.o base64.o l2_packet_linux.o eap_tls.o eap_peap.o eap_ttls.o eap_md5.o eap_mschapv2.o eap_tlv.o eapol_sm.o eap.o eap_tls_common.o tls_openssl.o ms_funcs.o crypto.o ctrl_iface.o wpa.o preauth.o aes_wrap.o wpa_supplicant.o events.o main.o drivers.o driver_zydas.o driver_wext.o -lssl -lcrypto -MMD -O2 -Wall -g -I. -I../utils -I../hostapd  -I/home/will/BCM97452/LinuxUSB_AR2524-3.0.0.56/apps/wpa_supplicant_0.4.8_zydas_v2/../openssl-0.9.8g/include -L/home/will/BCM97452/LinuxUSB_AR2524-3.0.0.56/apps/wpa_supplicant_0.4.8_zydas_v2/../openssl-0.9.8g -DCONFIG_DRIVER_ZYDAS -DCONFIG_DRIVER_WEXT -DEAP_TLS -DEAP_PEAP -DEAP_TTLS -DEAP_MD5 -DEAP_MSCHAPv2 -DEAP_TLV -DIEEE8021X_EAPOL -DEAP_TLS_FUNCS -DCONFIG_WIRELESS_EXTENSION -DCONFIG_CTRL_IFACE

/home/will/BCM97452/toolchains/bin/../lib/gcc/mipsel-linux-uclibc/3.4.6/../../../../mipsel-linux-uclibc/bin/ld: skipping incompatible /home/will/BCM97452/LinuxUSB_AR2524-3.0.0.56/apps/wpa_supplicant_0.4.8_zydas_v2/../openssl-0.9.8g/libssl.a when searching for -lssl

/home/will/BCM97452/toolchains/bin/../lib/gcc/mipsel-linux-uclibc/3.4.6/../../../../mipsel-linux-uclibc/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make: *** [wpa_supplicant] Error 1

不知道gcc为什么在执行-l参数时,为什么调用ld的路径是mipsel-linux-uclibc/bin/ld?
我想改为mipsel-linux/bin/ld,怎么改法啊??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

风铃鹿 2022-09-25 18:59:44

从错误信息来看,你这里应该是mipsel-linux-gcc调用的。

仅一夜美梦 2022-09-25 18:59:44

这个可以在 Makefile 里面指定吧?

跨年 2022-09-25 18:59:44

这是你home目录的 .bash_profile 里 PATH 变量指定的,可以在 .bash_profile 里加一句

PATH = $PATH:mipsel-linux/bin/

柳若烟 2022-09-25 18:59:44

建议看看 lfs 或 clfs 关于工具链方面的知识

弥繁 2022-09-25 18:59:44

最简单的办法:mv mipsel-linux-uclibc/bin/ld mipsel-linux-uclibc/bin/ld.bak
                     cp mipsel-linux/bin/ld  mipsel-linux-uclibc/bin/ld
哈哈哈哈哈!

三生池水覆流年 2022-09-25 18:59:44

这个错误应该与ssl库有关,与ld的执行路径无关。
skipping incompatible /home/will/BCM97452/LinuxUSB_AR2524-3.0.0.56/apps/wpa_supplicant_0.4.8_zydas_v2/../openssl-0.9.8g/libssl.a when searching for -lssl

/home/will/BCM97452/toolchains/bin/../lib/gcc/mipsel-linux-uclibc/3.4.6/../../../../mipsel-linux-uclibc/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make: *** [wpa_supplicant] Error 1
如果是ld未找到,应该报command not found.
楼主想编译什么源码包,能说得详细点吗?

栀梦 2022-09-25 18:59:44

我编译的是工具wpa_supplicant,编译时,发现要先提供openssl里的两个静态库。原先是由于在编译openssl时没有指定对目标平台mipsel-linux,所以导致编译出来的两个静态库libssl.a和libcrypto.a的格式有问题,最终导致了这个帖子所说的...ld: cannot find -lssl。

我以为是没有指定对ld的路径导致的,后来修改对了openssl的目标平台后,重新编译openssl和wpa_supplicant,就OK了。

话说回来,我还是想弄清楚原理,整个过程里,最终是在哪里调用的ld并指定ld的路径的???

夜雨飘雪 2022-09-25 18:59:44

执行export LD_LIBRARY_PATH=/...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文