[英]undefined reference error for g++ but not for gcc when using BSP library
[英]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
定义的函数的未定义引用。 我不知道该如何解决?
将ssl
和crypto
库添加到最终命令中,以便将这些库链接到您的程序。
您还必须遵守该顺序:由于sll
使用crypto
因此必须首先将ssl
放在后面,然后将crypto
放在后面。
g++ test.cpp helper.a -o cpp -lssl -lcrypto
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.