问题标签 [unresolved-external]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 如何让线程安全的 libssh2 在 Windows 下链接?
我正在开发一个使用 libssh2 的多线程多平台基于 Qt 的程序。当几个使用 SSH 的线程同时处于活动状态时,该程序偶尔会在 crypt_encrypt() 和 libssh2_transport_write() 内部崩溃,所以我四处搜索,发现一些页面说要使多线程 libssh2 可靠地工作,我需要调用 CRYPTO_set_locking_callback(),等,在使用 libssh2 之前。
基于该建议,我将指定的回调设置调用添加到 main() 的顶部,并使其全部编译和运行,而不会在 MacOS/X 下崩溃……但在 Windows 下,我现在收到以下链接错误不知道如何解决。
Microsoft (R) Windows (R) 资源编译器版本 6.1.6723.1 版权所有 (C) Microsoft Corporation。版权所有。链接... main.obj:错误LNK2019:函数“void __cdecl do_crypto_locks_setup(void)”(?do_crypto_locks_setup@@YAXXZ)中引用的未解析的外部符号_CRYPTO_set_locking_callback main.obj:错误LNK2019:函数“void __cdecl”中引用的未解析的外部符号_CRYPTO_malloc do_crypto_locks_setup(void)" (?do_crypto_locks_setup@@YAXXZ) main.obj:错误 LNK2019:未解析的外部符号 _CRYPTO_num_locks 在函数“void __cdecl do_crypto_locks_setup(void)”中引用(?do_crypto_locks_setup@@YAXXZ) main.obj:错误 LNK2019:未解析的外部函数“void __cdecl do_crypto_locks_cleanup(void)”中引用的符号 _CRYPTO_free (?do_crypto_locks_cleanup@@YAXXZ)
有没有人知道我可能需要做什么才能在 Windows 下链接这些调用?是否需要链接其他一些 .lib 文件,或者我是否需要将特定标志传递给“perl Configure VC-WIN32”命令以启用这些功能,或者???
谢谢,杰里米
c++ - 使用 Visual Studio 2010 实现 CURL
我正在尝试在 Windows Vista x64 上的 Visual Studio 2010 中编译一个使用 Curl 的程序。我从官网下载了最新版的Curl 7.23.1,解压到C:Program Files。从那里,我打开 lib 目录中的 VCProject 文件,对其进行转换,并在 Visual C++ Express 版本中构建它。这导致在 lib 文件夹中创建了一个调试文件夹,其中包含目标文件、sbr 文件和 libcurl.lib 文件。之后,我在 Visual Studio 中打开了 W32 控制台应用程序,将包含文件夹添加到包含目录,将调试文件夹添加到库目录和链接器下的其他库目录,并将 libcurl.lib 添加到其他依赖项。在尝试编译我的代码时,我收到以下错误:
我曾尝试在线学习一些教程,但它们都已过时。我遵循的过程应该适用于 Visual Studio 2008。我想也许我可能缺少一些头文件或者没有构建/编译 Curl 的部分。谢谢你的帮助。
visual-c++ - LNK2019 未解决的内联函数错误
我不知道为什么会这样。我得到的错误如下:
没有链接的是我的 Matrix 类中的getRowSize()
andgetColumnSize()
函数。我究竟做错了什么?
那么,我在这里做错了什么?我一直在寻找……寻找各种方式。
编码
头文件:
资源:
主要的:
c++ - 未解析的外部符号 - 仅在发布模式下
我正在使用 Visual C++ 6,我的应用程序在调试模式下构建和运行良好,但是在尝试在发布模式下构建时出现以下两个未解决的外部符号错误:
COverUnderReportDoc 是从 CReportDoc 派生的一个类,它是从 CDocument 派生的,它是 MFC 框架的一部分。
以下是函数声明:
以及定义:
我真的不确定如何解决这个问题,这些方法不在任何库中,并且该类编译得很好,所以我不知道为什么它在链接时看不到它们。有人有想法么?
编辑:这是我的项目选项:
发布项目选项:
(C/C++
标签Project Settings
)
(Link
标签Project Settings
)
调试项目选项:
(C/C++
标签Project Settings
)
(Link
标签Project Settings
)
c - 未定义的参考/未解析的外部符号
我正在尝试使用 WinSock.h 头文件,但出现以下任一错误:在 VS2010 (C++) 中:
在 gcc 命令行 (C) 中:
代码很简单:只包括 Winsock.h 头文件,然后
socket()
我在&功能上遇到错误closesocket()
...!我在 Stackoverflow 中搜索并找到了几个关于此的主题,但他们都建议更改头文件。我无法在此处更改 WinSock.h,因此我需要在使用头文件的实际代码中提供解决方案。有任何想法吗?
c++ - MSVC 链接器错误 LNK2001 未解决 cpp 文件中定义的模板方法的外部问题
我对 C++ 有点陌生(我通常在 C# 中工作,但现在我正在从事一个跨平台项目),所以我并不真正习惯它的所有概念以及编译/链接的工作原理。所以,自然地,我不太确定为什么会出现这个错误。我已经对该错误进行了一些研究,当人们没有链接库或在头文件中声明函数但从未在此之外定义它时,这似乎是人们通常遇到的问题。奇怪的是,我的错误不是两者的结果。确切的错误文本是这样的:
" Error 1 error LNK2001: unresolved external symbol "public: __thiscall ld22::QuadNode<class ld22::DrawableObject>::QuadNode<class ld22::DrawableObject>(class sf::Rect<float>)" (??0?$QuadNode@VDrawableObject@ld22@@@ld22@@QAE@V?$Rect@M@sf@@@Z) C:\Users\Nick\Documents\Visual Studio 2010\Projects\GDCSFMLTest\GDCSFMLTest\main.obj
"
对我来说,它似乎试图告诉我我从未实现过该文件。不过,我有。main.cpp
,编译成 main.obj 并给出错误的文件,包括Quadtree.h
,它用行声明函数(技术上,构造函数),QuadNode(sf::FloatRect);
在文件中Quadtree.cpp
我包含Quadtree.h
并定义构造函数,如下所示:
请原谅任何不好的编码实践等等,正如我所说,我对 C++ 还很陌生,我仍在努力解决问题。感谢您提供任何帮助(特别是如果我在某处犯了愚蠢或初学者的错误,我觉得我确实做到了),如果您需要更多信息,我很乐意提供。
linker - C AVR 中对“usbInit”的未定义引用
我为我的项目使用 v-usb 库。我写了代码,我想编译它,但不幸的是我有一个我无法解决的错误。这是我的屏幕截图:
这种情况对我来说很奇怪,因为我在标题中有这个:
并usbdrv/usbdrv.h
定义USBpoll
函数:
编译器不应该能够编译它吗?
这是我的项目:http: //goo.gl/P6ujK
这是我的整个工作区目录: http: //minus.com/mbhTkJuvOK#1
这是我的代码:main.c:
unresolved-external - 又一个 LNK2019:未解析的外部符号
我正在为一个学校项目创建主干,但我遇到了“未解决的外部符号”错误。根据本网站之前提到的问题,我认为必须手动将我的项目链接到 .lib 文件。问题是,我不知道我需要链接到哪个 .lib。有人能解释一下我十二岁吗?
c++ - 未解析的外部符号“public:class Foo __thiscall Bar::bu(char const *)”
这就是我所拥有的。我正在尝试使用自定义构造函数在 Bar 中创建 Foo 的实例。当我尝试从 Bar 的构造函数中调用构造函数时,我得到了外部未解决的问题。
c++ - 不同库继承问题中具有相同文件名的类
当从位于不同库中的具有相同文件名的类继承时,链接器会产生未解决的外部符号错误。想想这个继承:LIB2::MyClass : public LIB1::MyClass。
静态库“lib1”:
MyClass.h:
静态库“lib2”:
MyClass.h:
假设两个 .cpp 文件都存在。
lib1 中的 lib2 链接
然后一些可执行文件尝试链接 lib2 并使用派生的 MyClass,例如
链接失败
错误 LNK2001:未解析的外部符号“公共:__thiscall LIB1::MyClass::~MyClass(void)
(与ctor相同)
当我只是将其中一个 MyClass.cpp 的文件名更改为 MyClass1.cpp 时,一切都很好。
我怀疑链接器不是在 lib1.lib 中搜索 LIB1:MyClass 的定义,而是尝试在 MyClass.obj(来自 lib2)中找到它们。
这种行为感觉太奇怪了,不可能是故意的。我错过了什么?
此外,在 VS2005/2010 中设置解决方案时,包括库和可执行文件,并让 VS 通过项目属性->通用属性->框架和引用设置所有库依赖项(而不是在链接器设置中提供库的路径)链接成功。