我有一个带有默认构造函数的类,以及一个带有8个参数的构造函数.
从另一个类我试图调用构造函数并传递8个参数,但是当我尝试这样做时,我得到了一个LNK2019 Error.
令我困惑的是,如果我调用默认构造函数,程序编译并运行正常......一切都有正确的包含,必须正常工作,因为我可以调用默认构造函数,我使用QStrings作为一些参数但包含QString因此它不能...任何其他原因任何人都知道为什么我会LNK2019 error为构造函数接受参数而不是它的默认值?
Car.h
#include <QString>
class car
{
public:
car();
car(int car_id, QString something, QString something_else, QString something3, int an_int, int another_int, int another_int_i, QString something4);
};
Run Code Online (Sandbox Code Playgroud)
car.cpp
car::car()
{
}
car::car(int car_id, QString something, QString something_else, QString something3, int an_int, int another_int, int another_int_i, QString something4)
{
}
Run Code Online (Sandbox Code Playgroud)
显然我刚刚删除了上下文和值等,但在结构上没有任何区别
DatabaseController.cpp
#include "DatabaseController.h"
#include "car.h"
void DatabaseController::DoSomething()
{
car *pcar = new car(0, "", "", "", 0, 0, 0, "");
}
Run Code Online (Sandbox Code Playgroud)
interface.cpp …
我正在尝试构建 Fortran 程序,但收到有关未定义引用或未解析的外部符号的错误。我看到了有关这些错误的另一个问题,但那里的答案大多特定于 C++。
使用 Fortran 编写时出现这些错误的常见原因是什么?如何修复/预防它们?
这是构建 Fortran 程序时出现的一系列错误的典型问题。如果您被推荐到这里,或者您的问题作为与此问题重复的问题而被关闭,您可能需要阅读几个答案中的一个或多个。从这个答案开始,它充当所提供解决方案的目录。
fortran linker-errors unresolved-external undefined-reference
好吧,我在执行以下操作时遇到链接器(未解析的外部符号)错误:
- 我有一个"对象"类 - 它在"object.h"中定义.
它有一个构造函数,如: explicit Object(double x, /* lots more */);
在文件"object.cpp"中我想给该构造函数一个体: Object::object(double x) : _x(x) {}
这工作..但是如果我在"object.cpp"文件中添加关键字"inline":
inline Object::Object(double x) : _x(x) {}
Run Code Online (Sandbox Code Playgroud)
突然出现链接器错误!"错误LNK2019:未解析的外部符号"
为什么? - 这是否意味着我不能使用内联构造函数?
编辑:实际上我注意到所有方法的情况.但是,如果我将所有方法移动到object.h头文件,它就可以工作了.您不能从定义对象的头文件外部内联函数?
EDIT2:好的更新,我决定构建一个快速测试用例:
main.cpp:
#include "a.h"
int main ()
{
a t;
t.test(5);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
啊
class a {
public:
void test (int x);
};
Run Code Online (Sandbox Code Playgroud)
a.cpp
#include <iostream>
#include "a.h"
inline void a::test(int x) {
std::cout << x << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
这会出现以下错误:
main.obj:错误LNK2019:函数_main中引用的未解析的外部符号"public:void __thiscall a …
我正在尝试将ImageMagick Magick ++用于VS2010中的C++项目.我从这里安装了库:klick
然后在我的项目中,我将c:/ program files/ImageMagick-6.6.6-Q16/include添加到include文件夹中.然后我尝试使用Magick ++和这段代码:
#include <Magick++.h>
void main(int argc, char ** argv){
InitializeMagick(*argv);
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用!VS2010返回以下错误:
error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl Magick::InitializeMagick(char const *)" (__imp_?InitializeMagick@Magick@@YAXPBD@Z)
error LNK1120: 1 unresolved externals
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
非常感谢您的帮助!
更新:
将Linker - > Input - > Additionnal Dependencies设置为:
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;CORE_RL_Magick++_.lib
Run Code Online (Sandbox Code Playgroud)
和Linker - > General - > Additionnal Library目录:
C:\Program Files\ImageMagick-6.6.6-Q16\lib
Run Code Online (Sandbox Code Playgroud)
它仍会导致相同的错误......
更新2
在C:\ Program Files\ImageMagick-6.6.6-Q16\lib中打开.lib文件会导致此错误:

更新3
CORE_RL_Magick ++ _.lib确实包含?InitializeMagick @ Magick @@ YAXPEBD @ Z,但不是吗?InitializeMagick @ Magick @@ YAXPBD @ Z. 这是否意味着.lib文件已损坏? …
c++ imagemagick visual-studio-2010 unresolved-external magick++
环境:Windows XP.Visual Studios 2010.语言 - C++.
我遇到了以下链接错误,并且已经没有想法如何解决此问题.我有一个项目(CnD设备),它链接到我的小组控制的2个项目(消息和碳).我试图在3个项目之间搜索项目属性
enter tcp_driver.obj : error LNK2019: unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl toString(int)" (?toString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function "protected: bool __thiscall Tcp_Driver::readMessage(void)" (?readMessage@Tcp_Driver@@IAE_NXZ)
Run Code Online (Sandbox Code Playgroud)
我相信这个问题是因为我没有链接到标准C++库中的字符串.我一遍又一遍地扫描了我的房产清单.以下是我认为对此问题至关重要的一些属性.
CnD设备属性信息:
消息属性信息:
碳属性信息:
我的CnD链接输出是:
1>------ Rebuild …Run Code Online (Sandbox Code Playgroud) stdstring visual-studio-2010 unresolved-external lnk2019 c++-standard-library
我正在使用Visual Studio x64 Win64命令提示符(2010)来编译我的代码.我收到一些错误,我通常会知道如何在Visual Studio中修复,但不是只使用命令行.
输出:
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
main.cpp
Microsoft (R) Incremental Linker Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:main.exe
main.obj
main.obj : error LNK2019: unresolved external symbol __imp_DispatchMessageA referenced in function WinMain
main.obj : error LNK2019: unresolved external symbol __imp_TranslateMessage referenced in function WinMain
main.obj : error LNK2019: unresolved external symbol __imp_PeekMessageA referenced in function WinMain
main.obj : error LNK2019: unresolved external …Run Code Online (Sandbox Code Playgroud) 我有一个VC++代码(使用VS2008构建),它使用了一些静态库(在编译期间静态链接的*.lib文件).
为了便于理解,我们将我的EXE代码称为"AAA.EXE"并将lib文件称为"A.lib",b.lib等...
AAA.EXE代码和静态库代码都是使用VS2008构建的.
我看到我的"AAA.EXE"在32位版本中工作正常,并且当AAA.EXE以64位模式构建时显示以下链接器错误.
我当然在64位模式下重建了静态库,并在我的AAA.EXE中提供了lib路径,如下所示::"对应于AAA.EXE的项目配置属性 - >链接器 - >常规/输入".
很长一段时间,这个链接器错误确实困扰着我.任何帮助是极大的赞赏.
Logger.lib(Loggerr.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall CWTTLogger::CWTTLogger(void)" (__imp_??0CWTTLogger@@QAE@XZ)
1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall CWTTLogger::~CWTTLogger(void)" (__imp_??1CWTTLogger@@UAE@XZ)
1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __thiscall CWTTLogger::FunctionA(unsigned short *,long *)" (__imp_?FunctionA@CWTTLogger@@QAEJPAGPAJ@Z)
1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __thiscall CWTTLogger::FunctionB(unsigned short *,long)" (__imp_?FunctionB@CWTTLogger@@QAEJPAGJ@Z)
1>Logger.lib(Logger.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: long __thiscall CWTTLogger::FunctionC(unsigned short *,unsigned …Run Code Online (Sandbox Code Playgroud) c++ linker-errors unresolved-external 32bit-64bit visual-c++
我有一个C天文库,我想在我的C++应用程序中使用.
我在Win32和x64配置中使用Visual Studio 2012 Express构建它,并且:
...所以这是2*4 = 8个二进制文件(不包括*.pdb文件等)
然后我使用Batch Build来构建所有配置,因为有时我需要不同的版本,并且我发现在开始时完成这一切并且当一个过程很容易混合时,一个过程比偶然更好.
在我的C++应用程序中,我有相同的过程,并根据名称链接到库.具体来说,在我的项目属性链接器 - >输入字段中,我有:
SwissEphemeris_$(Platform)_$(Configuration).lib
Run Code Online (Sandbox Code Playgroud)
...并且正确设置了附加库目录.一切似乎都是对的.库文件位于库目录中.
在我拥有的8种配置中,除了两个外,所有配置都正确连接和构建:
对于这两种配置,相同的链接器错误:
main.obj : error LNK2019: unresolved external symbol _swe_close referenced in function _main
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些诊断或修复的东西,但没有一个有效:
/MACHINE链接器标志之外的偏差swe_close()在Win32动态调试配置中调用这个库函数并链接到*.lib.错误始终相同,如上所示.我已经打开了冗长的链接器输出,真正让我感到困惑的是链接器似乎成功找到并读取了SwissEphemeris_Win32_DynamicDebug.lib文件,但仍无法swe_close()在其中找到符号.即使dumpbin.exe表明符号,在我需要的所有其他符号中,也在其中.
1> Unused libraries:
1> E:\Data\Code\lib\SwissEphemeris\SwissEphemeris_Win32_DynamicDebug.lib
1> C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\user32.lib
1> C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\gdi32.lib
1> C:\Program …Run Code Online (Sandbox Code Playgroud) 我正在学习vc ++并使用代码检查内存的使用信息.这个程序给了我三个未解决的外部错误..
error LNK2019: unresolved external symbol _GetProcessMemoryInfo@12 referenced
in function "void __cdecl PrintMemoryInfo(unsigned long)"
(?PrintMemoryInfo@@YAXK@Z)
error LNK2019: unresolved external symbol _EnumProcesses@12 referenced in
function _main
error LNK1120: 2 unresolved externals.
Run Code Online (Sandbox Code Playgroud)
码::
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <psapi.h>
// To ensure correct resolution of symbols, add Psapi.lib to TARGETLIBS
// and compile with -DPSAPI_VERSION=1
void PrintMemoryInfo( DWORD processID )
{
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS pmc;
// Print the process identifier.
printf( "\nProcess ID: %u\n", processID );
// Print information …Run Code Online (Sandbox Code Playgroud) 我在 Windows 上使用 Visual Studio 2012 时遇到了 C++ cUrl 库的问题。
我有一个生成 .cgi 文件的CGI项目。该项目包括另一个名为Library 的项目,它是一个静态库项目。
在库项目中,我有使用 cUrl 并包含curl/curl.h. 我参考了Preprocessor Definition CURL_STATICLIB。
然后在我的CGI 项目中,我libcurl.lib在Configuration Properties > Linker > Additional Dependencies 中链接到我的项目。
但是当我尝试构建解决方案时,我仍然有这些错误:
error LNK2001: unresolved external symbol _curl_easy_setopt in Library.lib(fct_util.obj)
error LNK2001: unresolved external symbol _curl_easy_perform in Library.lib(fct_util.obj)
error LNK2001: unresolved external symbol _curl_easy_init in Library.lib(fct_util.obj)
error LNK2001: unresolved external symbol _curl_easy_cleanup in Library.lib(fct_util.obj) …Run Code Online (Sandbox Code Playgroud) c++ curl unresolved-external visual-studio visual-studio-2012
c++ ×8
lnk2019 ×2
visual-c++ ×2
32bit-64bit ×1
curl ×1
dll ×1
fortran ×1
imagemagick ×1
magick++ ×1
qt ×1
stdstring ×1