草庐IT

undefined-symbol

全部标签

c++ - Boost 1_65_1 不使用 OpenSSL 1.1.0g "undefined reference"编译,但使用 "nm"找到

我正在尝试让SSL与boostASIO一起工作。我在Windows上使用MingW6.3。我用MingW构建了OpenSSL1.1、1.0和0.8,当我尝试将它们链接到项目时,我总是会遇到不同的错误(取决于缺少什么)。现在我正在尝试使OpenSSL1.1.0g工作,但即使我使用CMAKE手动提供库的路径,我也会遇到这些错误:如果我使用OpenSSL1.1.0g构建我的项目,这是错误:"C:\ProgramFiles\JetBrains\CLion2017.2.3\bin\cmake\bin\cmake.exe"--buildC:\Users\myuser\Documents\Mages

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?

什么是undefinedreference/未解析的外部符号错误?常见原因是什么以及如何修复/预防它们? 最佳答案 编译C++程序需要几个步骤,如2.2(creditstoKeithThompsonforthereference)所指定的那样:Theprecedenceamongthesyntaxrulesoftranslationisspecifiedbythefollowingphases[seefootnote].Physicalsourcefilecharactersaremapped,inanimplementation-

c++ - Poco C++ 中的 undefined symbol

我之前编译了一个简单的命令行程序,它使用了PocoC++(顺便说一句,我喜欢它)。该程序完美运行了几个月。我的电脑上肯定有一些变化,因为现在当我运行程序时,我收到以下错误。dyld:Symbolnotfound:__ZN4Poco4Util11Application12handleOptionERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_Referencedfrom:/Users/me/bin/sqlmergeExpectedin:/usr/local/opt/poco/lib/libPoco

c++ - Opencv,对 `cv::imread(??cv::String const&???, int)' 的 undefined reference

这个问题在这里已经有了答案:error:undefinedreferenceto`cv::imread(std::stringconst&,int)'(4个答案)Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个答案)关闭5年前。我在QT+Opencv中有一个项目,代码可以正常工作,但我必须格式化窗口,现在我试图再次导入该项目,但出现了这个错误。对`cv::imread(cv::Stringconst&,int)'的undefinedreference在这一行中:mat=cv::imre

c++ - 对 `kill' 的 undefined reference

我用C为ARM7嵌入式系统开发了一个应用程序。现在我想用C++编译和链接它,以便使用一些C++功能。为此,我使用mipsel-elf-g++而不是mipsel-elf-gcc。我可以使用mipsel-elf-g++成功编译我的代码,但在链接步骤中出现错误:/opt/mipsel/lib/gcc/mipsel-elf/3.4.6/../../../../mipsel-elf/lib/libc.a(lib_a-abort.o):Infunction```abort':/cygdrive/d/Files/cross/mips/newlib-1.15.0/newlib/libc/stdlib/

c++ - 不满意链接错误 : undefined symbol _ZN5boost6system16generic_categoryEv in java (JNI)

我创建了一个.so文件,其中我根本没有使用boost库(当然早些时候我使用过它),但后来我切换到pthreads并删除了所有头文件和boost.so文件链接生成文件。Java文件编译成功。但是,当我尝试使用java-Djava.library.path=libs/-cpbuild/发送它给我以下错误。线程“main”中的异常java.lang.UnsatisfiedLinkError:/home/aahmed/libplxmsg-java/libs/libplxmsgjavaasyncbinder.so:/home/aahmed/libplxmsg-java/libs/libplxms

c++ - CMake 和 Dylib : symbol definitions

我在为dylib配置cmake时遇到了一些困难。这是我的测试:mylibfunc.cpp#includestaticintcount=0;extern"C"{intmylibfunc(){count++;returncount;}}基本测试.cpp#include#include#includetypedefint(*funcPtr)();intmain(){//Loadfirstlibraryvoid*handleA=dlopen("libmylib.dylib",RTLD_LAZY);funcPtrfunctionA=(int(*)())dlsym(handleA,"mylibfu

c++ - 编译器构造 : Handle references to unordered symbols

我有龙书,但它似乎没有处理那个话题......在大多数现代语言中,可以使用某些变量,即使它们在代码中的出现是无序的。示例classFoo{voidbar(){plonk=42;}intplonk;}在函数之后声明变量plonk并不重要。问题有没有什么最佳实践/有用的模式来实现这个?我想到了两种方法:在解析时为看不见的符号添加虚拟符号。当声明被解析时,这些虚拟符号会被它们的真实符号所取代。解析后,我们可以检查是否有剩余的虚拟对象,如果有则输出错误。解析时不要做任何符号的事情,而只创建AST。在通过AST解析步骤后,根据节点添加符号。例如一个类节点添加child的符号并在之后处理它们。例如

c++ - 惰性符号绑定(bind)失败 : symbol not found

我有三个头文件inmyproject描述对象Rational,Complex,和RubyObject.前两个是模板。所有这些都可以使用在头文件中定义的复制构造函数相互转换——除了那些从constRubyObject&构造Rational和Complex的构造函数,定义inasourcefile.注意:这些定义是必要的。如果它们全部进入标题,您将得到circulardependency.不久前,我遇到了someunresolvedsymbolerrors使用源文件中定义的两个复制构造函数。我能够在源文件中包含以下函数voidnm_init_data(){nm::RubyObjectobj

c++ - 删除内联函数调用导致 Unresolved external symbol 错误

我试图证明您需要在所有使用它的TU中定义一个inline函数。但是,以下代码编译良好(MSVS2010):inc.hinlinevoidfoo();测试.cpp#include"inc.h"voidx();intmain(){foo();//测试2.cpp#include"inc.h"voidx(){foo();}请注意函数调用是为了防止优化。这会编译,虽然foo被声明为inline并且仅在test.cpp中定义,但也在test2.cpp中使用>.如果我在main()中注释掉对foo的调用,我会得到预期的错误。"void__cdeclfoo(void)"(?foo@@YAXXZ)ref