草庐IT

c++ - "decode"Visual Studio 链接错误怎么办?

我在C++方面不是很有经验,当我不得不使用另一个库并且遇到链接错误时,我对编译器试图告诉我的内容一无所知(除了它不能在某处找到一些引用)。是否有任何好的链接可以详细描述链接错误消息中符号和字符的含义?或者如何解决此类错误?例如,这是我最近收到的链接错误:testprojerrorLNK2019:unresolvedexternalsymbol"public:__thiscallgoogle::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(classgoogle::protobuf::

c++ - 未解析的外部符号

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?我正在努力将大量.h和.lib文件从nativeC++包装到托管C++,以便最终用作C#中的引用.dll。我已经链接了.lib文件,到目前为止一切都很顺利。包装最新的.h文件后,当2个函数返回链接错误时,我遇到了麻烦:errorLNK2019:unresolvedexternalsymbol__imp__htonl@4referencedinfunction"publi

c++ - 不同系统上的相同构建

我有3台构建机器。一种在Windows2000上运行,一种使用XPSP3,另一种使用64位WindowsServer2008。我有一个要构建的nativeC++项目(我正在使用visualstudio2005SP1构建)。我的目标是使用这些构建机器构建“完全”相同的dll。我的意思是一点一点(当然除了构建时间戳)。对于win2k和winxp,我得到相同的dll。但它们与使用win2008服务器构建的dll不同。我设法获得了几乎相同的dll,但存在一些差异。反汇编文件后发现函数顺序不一样(3个函数顺序不同)。有人知道这是什么原因吗?还有一个附带问题:在vcbuild.exe中,我找到了一

c++ - 链接器以什么顺序处理库目录?

在编译过程中,搜索路径中可能存在多个库实例。链接器进程目录将以什么顺序包含在搜索路径中?所讨论的平台是Sun操作系统。 最佳答案 按照在命令行中指定的顺序搜索目录。在默认目录之前搜索命令行中指定的目录。所有-L选项适用于所有-l选项,无论选项出现的顺序如何。LD_LIBRARY_PATH也可用于补充库搜索路径。目录搜索在第一个包含匹配库的目录处停止。虽然LD_LIBRARY_PATH很棘手:LD_LIBRARY_PATHAlistofdirectoriesinwhichtosearchforlibrariesspecifiedwit

c++ - 有没有办法忽略未使用的 undefined reference ?

假设我有两个源文件—UndefErr.cpp:#includevoidUndefFunc();voidFunc2(){UndefFunc();}voidFunc1(){printf("Hi\n");}还有main.cpp:voidFunc1();intmain(){Func1();return0;}正如您在UndefErr.cpp中看到的那样,Func2()将触发错误,因为它使用未定义的UndefFunc().然而main函数并不关心Func2()!根据arelevantquestion我可以将一个选项--unresolved-symbols=ignore-in-object-file

c++ - 在 CMAKE 中正确设置 Visual Studio 链接器标志/SUBSYSTEM

我正在尝试使用cmake建立一个旧项目,我想保持所有标志与以前相同。旧项目生成器具有链接器标志/SUBSYSTEM,最小子系统版本号5.01设置如下:/SUBSYSTEM:WINDOWS,"5.01"我在cmake中尝试了同样的添加:set_target_properties(mytargetPROPERTIESLINK_FLAGS_RELEASE"/SUBSYSTEM:WINDOWS,\"5.01\"")但是结果是错误的。Cmake似乎删除了(转义的)双引号并将链接器标志放置到VisualStudio项目中的“添加选项”:/SUBSYSTEM:WINDOWS,5.01这样子系统标志就

c++ - ld 报告缺少符号,但符号似乎存在

我正在尝试将我的mac应用程序链接到精彩的libancillary图书馆。但是,我更改了库构建脚本以创建共享库。我可以使用nmlibancillary.dylib检查这个库中的符号-结果是:libancillary.dylib(singlemodule):U___sFU__keymgr_get_and_lock_processwide_ptrU__keymgr_get_and_lock_processwide_ptr_2U__keymgr_set_and_unlock_processwide_ptrU_abort00002cfeT_ancil_recv_fd00002c87T_anci

c++ - 尝试编译时出现QT undefined reference 错误

我在我的QT项目中添加了一个IcecastServer类,在pro文件中添加了头文件并添加了一些代码。每次编译都会出现以下错误:release/icecastserver.o:icecastserver.cpp:(.text+0x39):undefinedreferenceto_imp___ZN10QTcpServerC1EP7QObject'release/icecastserver.o:icecastserver.cpp:(.text+0x50):undefinedreferencetoimpZN12QHostAddressC1ENS_14SpecialAddressE'relea

c++ - 链接 boost 库

我已经下载了boost库(版本1.46.1),但我不知道如何通过xcode链接它。我发现一个老问题说要放-lfftw3标志,所以我放了它。我还添加了路径:/home/Documents/C++/boost_1_46_1(这是我放置库的目录),但我从链接器收到错误消息:ld:warning:directorynotfoundforoption'-L/home/ramy/Documents/C++/boost_1_46_1'ld:librarynotfoundfor-lfftw3clang:error:linkercommandfailedwithexitcode1(use-vtoseei

c++ - 强制 Clang 链接到 C++ 运行时

我有一个包含C和C++源代码混合的项目。它目前在OSX上使用GCC构建。该项目有定制的构建脚本,调用gcc命令来编译C和C++源代码,并单独调用链接器。我现在正尝试使用Clang构建它。调用clang会正确编译源文件;它区分.c和.cpp源文件,并针对每种情况编译适当的语言。不过,我在链接时遇到了问题。当链接器作为clang调用时,C++运行时库未链接进来,导致由于缺少符号而导致构建错误。当我将clang++设置为构建工具时,我可以成功链接,但这会导致编译时错误和警告;它真的不喜欢用C++编译器编译C源代码。clang:warning:treating'c'inputas'c++'wh