命令行编译链接,出现LNK2019错误,怎样解决?
来源:互联网 发布:生产过程最优化 编辑:程序博客网 时间:2024/05/16 04:59
命令行编译链接,出现LNK2019错误,怎样解决?
在visual studio环境下编译链接通过,但我在命令行模式下连接出现如下错误:/out:test01.exetest01.objtest01.obj : error LNK2019: 无法解析的外部符号 __imp__MessageBoxA@16 ,该符号在函数 _MessageBoxPrintf 中被引用test01.obj : error LNK2019: 无法解析的外部符号 __imp__GetSystemMetrics@4 ,该符号在函数 _WinMain@16 中被引用test01.exe : fatal error LNK1120: 2 个无法解析的外部命令请问我如何确定连接的参数才能正确链接?????下述是我在msdn查到的相关资料:无法解析的外部符号“symbol”,该符号在函数“function”中被引用在 function 中找到了未定义的外部符号 (symbol)。若要解决此错误,请提供符号定义或移除引用它的代码。请看下面的示例:extern int i;extern void g();void f(){ i++; g();}int main(){}如果在生成中包含的某个文件中没有定义 i 和 g,链接器将生成 LNK2019。可以添加这些定义,方法是将包含这些定义的源代码文件包括为编译的一部分。或者可以将包含这些定义的 .obj 或 .lib 文件传递给链接器。对于从早期版本升级到当前版本的 C++ 项目,如果定义了 __UNICODE 并且入口点为 WinMain,需要将入口点函数的名称更改为 _tWinMain 或 _tmain。导致 LNK2019 的常见问题有: 符号声明包含拼写错误,以致于符号声明与符号定义不同。 使用了一个函数,但其参数的类型或数量与函数定义不匹配。 函数声明使用和函数定义使用中的调用约定(__cdecl、__stdcall 或__fastcall)不同。 符号定义在编译为 C 程序的文件中,而符号是在 C++ 文件中不带 extern "C" 修饰符声明的。在此情况下,请修改声明,例如不是使用: extern int i;extern void g();而使用: extern "C" int i;extern "C" void g();同样,如果在将由 C 程序使用的 C++ 文件中定义符号,请在定义中使用 extern "C"。 符号定义为静态,但稍后在文件外部被引用。 没有定义静态类成员。例如,应单独定义下面类声明中的成员变量 si: #include <stdio.h>struct X { static int si;};// int X::si = 0; // uncomment this line to resolvevoid main(){ X *px = new X[2]; printf("/n%d",px[0].si); // LNK2019}/verbose 链接器选项帮助您查看链接器引用的文件。DUMPBIN 实用工具的 /EXPORT 和 /SYMBOLS 选项还可以帮助您查看 dll 和对象/库文件中定义的符号。
该问题已经结贴
- 命令行编译链接,出现LNK2019错误,怎样解决?
- vc编译链接错误--LNK2001,LNK2019
- [转]vc编译链接错误--LNK2001,LNK2019,
- java 命令行编译错误解决
- 用MFC编程编译时出现LNK2019的错误,解决办法
- 如何解决关于函数timeGetTime出现的error LNK2019错误
- 链接器工具错误 LNK2019
- JAVA命令行输入 编译怎么会出现错误!
- 链接器工具错误 LNK2019 C++primer5第十五章程序错误的解决
- 编译和链接 - 解决出现的LNK2005“符号已定义”错误 1
- 编译和链接 - 解决出现的LNK2005“符号已定义”错误 2
- 编译和链接 - 解决出现的LNK2005“符号已定义”错误 3
- 编译和链接 - 解决出现的LNK2005“符号已定义”错误 4
- vs2012编译基于CGAL4.8.1应用时候最后出现链接错误_imp_gmpq_init等解决
- 编译uboot出现链接错误--原因
- 关于函数模版编译出现链接错误
- 编译错误:LNK2019 CRadialMenuView:GetThisClass
- 编译jsoncpp错误:error LNK2019
- 警惕日本文化的侵蚀
- Travel of Beijing(1)
- 技术和项目管理工作心得
- 计算机网络和互联网学习笔记
- 看俞敏洪《学习英语与人生奋斗》
- 命令行编译链接,出现LNK2019错误,怎样解决?
- 构建基本的.NET Remoting应用程序
- Linux disk place
- SqlHelper 成员
- Lipatti·du Pre
- 变速箱原理
- 羽毛球比“菜”
- 简历_all_20050327
- 更好的使用SQLHelper类