gpt4 book ai didi

c - C- undefined reference

转载 作者:行者123 更新时间:2023-12-02 10:55:47 29 4
gpt4 key购买 nike

我目前正在使用C进行一个项目。我搜索了多个类似的问题,但是答案对我来说并不确定,因为我过去从未真正使用过C。
我的问题如下:
该项目包含多个不同的文件。我正在编辑文件“pm3/armsrc/epa.c” 。现在,我需要使用另一个文件中的函数。该函数位于“pm3/common/mbedtls/sha1.c ”中。
我试图像这样在epa.c中包含此文件:

#include "../common/mbedtls/sha1.h"
它似乎正常工作,我可以访问该功能。但是在启动Makefile以便编译项目后(到目前为止运行良好),我在epa.c中收到一条错误消息:
undefined reference to `mbedtls_sha1_ret'
在其他答案中,链接器和gcc调用似乎是一个问题,但是调用Makefile来构建所有内容的其他Makefile的Makefile都是预制的。如您在“全部制作”输出中所见,成功构建了具有所需功能的文件:
Compiling mbedtls
cd ../common/mbedtls && make all
make[2]: Entering directory '/pm3/common/mbedtls'
ar rcs libmbedtls.a aes.o asn1parse.o asn1write.o base64.o bignum.o ctr_drbg.o entropy_poll.o entropy.o error.o timing.o ecp.o ecp_curves.o certs.o camellia.o blowfish.o cipher_wrap.o cipher.o cmac.o des.o ecdsa.o md.o md_wrap.o md5.o oid.o pem.o arc4.o pk.o pk_wrap.o pkwrite.o pkcs5.o pkcs12.o pkparse.o platform.o platform_util.o rsa.o rsa_internal.o sha1.o sha256.o sha512.o threading.o x509.o x509_crl.o x509_crt.o
ranlib libmbedtls.a
make[2]: Leaving directory '/pm3/common/mbedtls'
如果有人可以看一下Makefile,或者有人为了使编译工作有其他可能性,我将非常高兴。这是git-repo的链接: https://github.com/Proxmark/proxmark3。我对Makefile的了解很少,因此我看不到预制文件有任何问题。

最佳答案

在不深入makefile的情况下,您确实正确使用了include指令,
但是可执行文件的make命令(链接)可能不包含
您现在使用(并已引用)的库。
在makefile中寻找链接器调用的位置
(gcc或g++或ld),然后查看该库(可能是mbedtls)是否出现在
链接文件列表。

关于c - C- undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64516154/

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