gpt4 book ai didi

c++ - undefined reference ,尽管链接顺序正确

转载 作者:行者123 更新时间:2023-11-28 06:48:06 33 4
gpt4 key购买 nike

我在链接外部库时遇到问题,MY_LIB.a .

以下是从 mbed.org 编译器创建的 makefile 调用的,并添加了我指向 MY_LIB.a 的链接路径。

arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wl,--gc-sections --specs=nano.specs 
-u _printf_float -u _scanf_float -T./mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/LPC1768.ld
-L./mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM -o MyProg.elf main.o mbed/TARGET_LPC1768
/TOOLCHAIN_GCC_ARM/cmsis_nvic.o mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/system_LPC17xx.o
mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/startup_LPC17xx.o mbed/TARGET_LPC1768
/TOOLCHAIN_GCC_ARM/board.o mbed/TARGET_LPC1768/TOOLCHAIN_GCC_ARM/retarget.o
-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
-L/usr/local/lib/MY_LIB.a
main.o: In function `main':

然后我得到 undefined reference to <function> MY_LIB 中定义的每个函数的错误.

我的理解是MY_LIB.a只需要在 main.o 之后链接哪个使用它。

我还尝试(立即)在 -o MyProg.elf main.o 之后进行链接, 但后来我得到 could not read symbols: File in wrong format .

链接这个库的正确方法是什么?是否需要在上一步中链接才能在此处以...正确格式列出?这是怎么做到的?

最佳答案

从您与 adpeace 的讨论中,我了解到该库的目标是 i386,而您使用的构建命令清楚地表明您的目标是 arm 平台。

在那种情况下,您将无法使用这个特定的库文件,并且需要找到它的 arm 版本。

关于c++ - undefined reference ,尽管链接顺序正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558468/

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