C ++未定义参考[链接器错误]

时间:2015-04-02 17:55:56

标签: c++ linker include openssl undefined-reference

我最近一直在使用OpenSSL,我遇到了an issue问题已修复。但是,在解决了这个问题后,又出现了另一个问题。

我只能假设这是一个链接器错误。我之前没有真正处理过这种事情,而且我对OpenSSL并不熟悉,所以我真的不知道如何链接我需要的东西(假设这甚至是问题)

以下是发生的事情:

gcc example.cpp -o example.out

/tmp/ccwBWhub.o: In function `main`:
example.cpp:(.text+0x91): undefined reference to 'OpenSSL_add_all_digests'
example.cpp:(.text+0xa2): undefined reference to 'EVP_get_digestbyname'
example.cpp:(.text+0xd7): undefined reference to 'EVP_MD_CTX_create'
example.cpp:(.text+0xf7): undefined reference to 'EVP_DigestInit_ex'
example.cpp:(.text+0x131): undefined reference to 'EVP_DigestUpdate'
example.cpp:(.text+0x16b): undefined reference to 'EVP_DigestUpdate'
example.cpp:(.text+0x187): undefined reference to 'EVP_DigestFinal_ex'
example.cpp:(.text+0x192): undefined reference to 'EVP_MD_CTX_destroy'
example.cpp:(.text+0x1ee): undefined reference to 'EVP_cleanup'

据我所知,这意味着编译器无法找到这些函数的定义位置。从我的在线研究中,我需要将它与OpenSSL库链接,无论它在哪里。

我使用#include <openssl/evp.h>加载这些函数From my Source Code,所以我假设我需要找到该文件。运行搜索后,我在~/program/openssl-1.0.1/include/openssl中找到了所有包含文件,我的程序位于~/program/example.cpp

我试着将其链接起来:gcc -I./openssl-1.0.1/include/openssl example.cpp -o example.out,但它不起作用。

我只能假设我不知道自己在做什么,而且我不知道如何正确链接文件。希望有人可以帮助我。

0 个答案:

没有答案