繁体   English   中英

链接器错误,使用g ++链接到gcc编译的库,对该函数的未定义引用

[英]Linker error, using g++ to link to a library compiled by gcc, undefined reference to that function

我编写了一个C函数,该函数调用openssl/sha.h定义的函数,假设声明为"helper.h" ,实现为"helper.c ”。 然后,我使用gcc编译了该函数并将其放入库中:

gcc -std=c99 -lcrypto -lssl -c helper.c -o helper.o
ar -rc helper.a helper.o

然后,我编写了一个cpp函数,该函数调用在"helper.h"声明的函数。 我加了

extern "C" {
#include "helper.h"
} 

该cpp文件中的内容,然后我用了

g++ test.cpp helper.a -o cpp

然后发生ld错误,并说我遇到了对openssl/sha.h定义的函数的未定义引用。 我不知道该如何解决?

sslcrypto库添加到最终命令中,以便将这些库链接到您的程序。

您还必须遵守该顺序:由于sll使用crypto因此必须首先将ssl放在后面,然后将crypto放在后面。

g++ test.cpp helper.a -o cpp -lssl -lcrypto

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM