链接器错误,使用 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
中定义的函数的未定义引用。我想知道如何解决这个问题?
将ssl
和crypto
库添加到最终命令中,以便将这些库链接到程序。
您还必须尊重顺序:由于sll
正在使用crypto
因此您必须将ssl
放在第一位,然后将crypto
放在后面。
g++ test.cpp helper.a -o cpp -lssl -lcrypto
相关文章:
- 链接器输入文件未使用,因为链接未完成,我无法获得.o
- CURL 静态链接未解析的外部符号
- OCCI 链接:未定义的符号
- CMAKE OS X CLION.如何链接自定义动态库
- C++链接未定义的引用
- 静态库链接 已定义符号的问题"Undefined symbols"
- 如何链接自定义静态库
- 如何设置 CMAKE 静态链接(未定义对 'dlopen' 的引用)?
- MFC 静态链接未解析的外部符号
- Visual Studio C++链接未使用的全局变量
- 如何在静态库中的单独 cpp 文件中链接未引用的变量
- C++链接是否足够聪明,可以避免链接未使用的库
- MinGW 与 MSVC 的 dll 库问题链接(未定义的引用)
- SDL2_mixer链接未定义引用C::B
- g++.exe[警告]链接器输入文件未使用,因为链接未完成
- c++链接自定义.so库,然后与JNI
- 在单独的.cpp文件和生成文件链接中定义的类外部的 C++ 函数
- 将犰狳/布拉斯/拉帕克与 cmake 链接(未定义对"dgemv_"的引用)
- 在 Ubuntu 12.04 上链接 - 未定义对"clock_gettime@GLIBC_2.17"的引用
- 在Makefile中链接时定义变量的问题