我已经尝试了越来越多的时间,但我得到了同样的错误。 当我使用外部lib时,例如我尝试使用openssl和crypto ++,我收到错误:“undefined reference to(function)”。
我不知道为什么Eclipse会这样做,因为#include都是正确的。 我甚至试过从Properties-C / C ++ General-Path&添加路径。符号,但没有。
有人能帮助我吗?
答案 0 :(得分:16)
您必须指定必须链接到可执行文件的共享库的名称。
假设您使用的是GNU工具链,可以按照以下步骤进行:
Properties
C/C++ Build
下 - > Settings
GCC C Linker
- > Libraries
Libraries (-l)
中,添加图书馆名称Library search path (-L)
。答案 1 :(得分:0)
我也有同样的问题。我在使用Eclipse CDT
并尝试使用OpenSSL
标头构建源代码,但遇到了同样的"undefined reference"
问题。
对于可能也遇到此类错误的人,请尝试以下步骤:
Ubuntu 18.04
)
right click your project->preference->C/C++ Build->tool chain editor->use CDT internal Builder / Linux gcc
(您可以尝试运行HelloWorld作为测试)C/C++ Build->settings->gcc linker
,请参阅右侧的"+"
,单击并键入ssl
和crypto
我强烈建议您学习gcc编译器命令行。如果遇到编译问题,请始终使用终端和命令行查看是否可以成功编译,然后将成功的命令与Eclipse中的控制台日志进行比较,在此处您可以看到用于编译代码的实际gcc命令。
gcc命令的好资源:https://www.rapidtables.com/code/linux/gcc/gcc-l.html