对Eclipse c++的未定义引用
Undefined reference to Eclipse C++
我试了越来越多的时间,但我得到了同样的错误。当我使用外部库时,例如,我试图在openssl和crypto++上工作,我收到错误:"对(函数)的未定义引用"。
我不知道为什么Eclipse这样做,但是#include都是正确的。我甚至尝试添加了Properties-C/c++ General-Path &符号,但没有。
有人能帮我吗?您必须指定必须链接到可执行文件的共享库的名称。
假设您正在使用GNU工具链,您可以按照以下步骤来做:
- 右键单击项目,然后选择
Properties
- 进入
C/C++ Build
->Settings
- 选择
GCC C Linker
->Libraries
- 在
Libraries (-l)
中,添加库的名称, - 如果需要,将库所在的目录放在
Library search path (-L)
中。
我也有同样的问题。我正在使用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
相关文章:
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 对 Scalar ::Scalar() 的未定义引用
- 对复制 CTOR 和 CTOR 的未定义引用
- 对显式实例化的模板函数的未定义引用
- TensorRT (C++ API) 对"createNvOnnxParser_INTERNAL"的未定义引用
- 2个模板化类的非模板友元函数未定义引用错误
- 编译 libfluid 样本控制器时对"event_base_del_virtual"的未定义引用
- 获取对function_name的未定义引用
- 对 'std::thread::_M_start_thread CMake 的未定义引用进行基准测试
- 对结构方法的未定义引用
- 使用内联函数 c++ 的未定义引用
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 对 DLOPEN 的未定义引用
- QT C++中对全局变量的未定义引用
- 快速数学导致对"__pow_finite"的未定义引用
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用