我编写了一个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
然后我编写了一个调用"helper.h"
中声明的函数的cpp函数。我添加了
extern "C" {
#include "helper.h"
}
该cpp文件中的内容然后我使用
g++ test.cpp helper.a -o cpp
然后发生ld错误并说我遇到openssl/sha.h
中定义的函数的未定义引用。我想知道如何解决这个问题?
答案 0 :(得分:0)
将ssl
和crypto
库添加到最终命令中,以便将这些库链接到您的程序。
您还必须尊重订单:由于sll
正在使用crypto
,因此您必须先ssl
,然后crypto
。
g++ test.cpp helper.a -o cpp -lssl -lcrypto