问题标签 [lnk2019]
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.
c++ - LNK2019 使用非模板类
使用引用其中其他类的类时出现链接器错误。
它来自引用这个类:
在这堂课中:
它们当前位于同一个 .cpp 文件中,并且 MovePattern 在 Enemy 上方。
我不确定这里发生了什么
带有空白控制台项目的 Visual C++ 2010 Express,我还没有发现任何与我的问题类似的东西,任何帮助将不胜感激。
c++ - C++ 错误 LNK2019 和错误 LNK1120
您好,我正在控制台中制作井字游戏。我的代码有什么问题?我将链接器设置设置为控制台。
代码:
c++ - 错误 LNK2019:函数 ___tmainCRTStartup 中引用了未解析的外部符号 _main,但这次不是 Windows/控制台问题!
所以,臭名昭著的错误又回来了。该项目抱怨它找不到 main() 方法(这就是错误的含义,对)。
但是我确实有一个主项目,而且我的项目应该是一个控制台项目。它以前工作过,所以我知道不是那样的。
此外,该项目有太多的类和文件,我无法将它们全部发布,所以我会根据您的要求发布您需要的任何类。
这是 Visual Studio 2010 上的 C++、OpenGL 和 SDL 游戏。这不是任何库的问题,因为它在突然莫名其妙地显示此链接器错误之前工作正常。
编辑: main() 方法:
c++ - “已清除”是否将宏导出到 .lib 文件?
我有一些宏,#define dosomething(x) something(x)
它被编译成一个dll。我会在构建创建的那个库中拥有那个宏吗?
c++ - 如何消除程序中的链接器错误?
好吧,我正在为我的班级编写这段代码,但我在使用 Visual Studio 时遇到了链接器错误 LNK2019 和 LNK1120。我不太确定它为什么会这样做,但我离题了。
头文件:
和 CPP 文件:
有什么我可以解决的吗?
c++ - C++ 链接器错误 LNK2019
我对 C++ 还是很陌生,不知道为什么在尝试在另一个类中调用这些函数时会出现这些链接器错误。
错误是:
弹丸.cpp:
Star 在 Star.h 中定义:
c++ - Visual C++ LNK2019 错误
使用 Microsoft Visual C++ 我正在尝试编译文件“test.cc”,它是一个小包的一部分,可在以下位置免费下载
http://sourceforge.net/projects/clippoly/files/
文件 test.cc 如下所示:
测试文件旨在演示计算两个输入多边形的交集。
我在“项目->属性->VC++目录->包含目录”中包含了必要头文件的路径,编译器识别出“poly.h”、“poly_io.h”和“nclip.h”的存在。
但是,当我尝试编译时,出现以下链接器错误:
test.obj : 错误 LNK2019:函数标量删除析构函数'(unsigned int)"` (??_GPolyNode@@AAEPAXI@Z)
"private: __thiscall PolyNode::~PolyNode(void)"
中引用的未解析外部符号 (??1PolyNode@@AAE@XZ )"private: void * __thiscall PolyNode::
test.obj:错误 LNK2019:引用了未解析的外部符号
"class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Set<class Poly *> const &)"
(??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$Set@PAVPoly@@@@@Z)在功能上_main
test.obj:错误 LNK2019:函数中引用
"void __cdecl clip_poly(class Poly const &,class Poly const &,class Set<class Poly *> &,class Set<class Poly *> &,class Set<class Poly *> &)"
了未解析的外部符号 (?clip_poly@@YAXABVPoly@@0AAV?$Set@PAVPoly@@@@11@Z)_main
test.obj:错误 LNK2019:函数中引用了未解析的外部符号
"class Poly * __cdecl read_poly(class std::basic_istream<char,struct std::char_traits<char> > &)"
(?read_poly@@YAPAVPoly@@AAV?$basic_istream@DU?$char_traits@D@std@@@std@@@Z)_main
我究竟做错了什么?我试图在“项目->属性”下的所有地方添加路径。但现在我不知所措。
我希望这对某人来说是一个相当简单的问题:)
visual-studio-2010 - 错误 LNK2019:未解析的外部符号“toString(int)”
环境:Windows XP。Visual Studios 2010。语言 - C++。
我遇到了以下链接错误并且已经没有如何解决这个问题的想法。我有一个项目(CnD 设备),它链接到我的团队控制的 2 个项目(消息和碳)。我试图在 3 个项目之间搜索项目属性
我相信这个问题是因为我没有链接到标准 C++ 库中的字符串。我一遍又一遍地扫描我的属性列表。以下是我认为对这个问题至关重要的一些属性。
CnD 设备属性信息:
- 配置类型动态库.dll
- 使用MFC 在共享 DLL 中使用 MFC
- 使用 ALT不使用 ALT
- 字符集使用多字节字符集
- 运行时库多线程 DLL (/MD)
- 附加依赖项 msvcprtd.lib、Carbon.lib、BUFFER_API.lib、BUFFER_FRAMEWORK.lib、Messages.lib
- 忽略所有默认库否
消息属性信息:
- 配置类型静态库 (.lib)
- 使用MFC 在共享 DLL 中使用 MFC
- 使用 ALT不使用 ALT
- 字符集使用 Unicode 字符集
- 运行时库多线程 DLL (/MD)
- 附加依赖项
- 链接库依赖否
碳属性信息:
- 配置类型静态库 (.lib)
- 使用MFC 在共享 DLL 中使用 MFC
- 使用 ALT不使用 ALT
- 字符集使用 Unicode 字符集
- 运行时库多线程 DLL (/MD)
- 链接库依赖否
我的 CnD 链接输出是:
visual-c++ - MS VC 链接器 (link.exe):为什么 32/64 位 CPU 架构不匹配没有警告?
(更新:根据汉斯的建议,这里有一个改善link.exe
行为的建议,如果你在那边有账号可以投票给它。)
好吧,我是个傻瓜。一月份,我在我的电脑上安装了 Oracle,Win7 Pro 64 位。我安装了 64 位版本。昨天,使用 MSVC Express,我尝试编译和链接一个小型测试程序,并oci1.c
针对.oci.h
oci.lib
我的尝试一直以 'function' 失败LNK2019
,这意味着函数 'function' 中引用了未解析的外部符号 'symbol'。当然,有问题的符号 ( _OCIEnvCreate
) 由 提供oci.lib
,因此链接器应该能够解析它。
我终于意识到它无法工作,因为我的编译器只有 32 位,而导入库是 64 位的。如果你是个傻瓜并且你不知道或不记得,那么你可以使用该dumpbin
实用程序查看它:
到现在为止还挺好。但我浪费了一些时间,并希望避免重复这种经历。
虽然不正确,但LNK2019
错误消息不会引导您朝着正确的方向前进。没有警告您正在尝试链接不同 CPU 架构的二进制文件。
请注意,当您指定 X64 体系结构时,会提醒您指定 X86 二进制文件这一事实:
但是,当您显式或隐式指定 X86 架构时,没有这样的精确警告:
我刚刚发现/VERBOSE 切换到link.exe
,使用时提示在我的 64 位中找不到符号oci.lib
。
您是否可以打开其他选项以使链接过程更加,嗯,万无一失?
更新:根据 Hans 的回答,我dumpbin
在 32 位导入库上运行,名称显示如下:
而我在这里处理的 64 位 OCI 导入库中的名称似乎没有修饰:
在 Windows 上下文中为 x64 架构编译时(无论是使用 Microsoft 还是非 Microsoft 工具),只有一种调用约定 — 此处描述的一种,因此 stdcall、thiscall、cdecl、fastcall 等现在都是一个和相同的。
还与有关名称修饰的文章有关。
现在对我来说很有意义。cdecl
一个也是唯一的调用约定,因此不需要名称修饰,因此在为 X86 编译时没有前导下划线。
c++ - LNK2019 尝试继承类时
所以,我试图从另一个类继承一个类。我有基类 Entity,我有一个需要从它继承的 Hero 类。
像往常一样,我这样做:
我的实体类:
我得到的错误是:
谁能告诉我我在这里做错了什么?