Mar*_*erg 1 c++ codeblocks visual-c++
我正在尝试编译一个项目,但收到此错误:
1>project.obj : error LNK2019: unresolved external symbol __snprintf referenced in function "unsigned char * __cdecl GetResource(char *,unsigned long &)" (?GetResource@@YAPAEPADAAK@Z)
1>Release/file.bin : fatal error LNK1120: 1 unresolved externals
Run Code Online (Sandbox Code Playgroud)
我正在使用 VC++ 2010,也尝试使用 CodeBlocks 进行编译,但出现类似的错误:
windres.exe -J rc -O coff -i C:\Users\x\Desktop\project\project\File.rc -o .objs\File.res
windres.exe: no resources
Process terminated with status 1 (0 minutes, 0 seconds)
Run Code Online (Sandbox Code Playgroud)
我的项目目录中有 File.rc 但它是 0kb,我不知道如何解决这个问题。
我很确定这与代码中的某些内容无关,因此我没有发布示例,但如果您需要示例,我会发布它。
我知道这篇文章很旧,所以这是我对这个问题的回答,以防有人遇到同样的问题
printf 和 scanf 系列函数现在是内联定义的。
所有 printf 和 scanf 函数的定义已内联移至<stdio.h>、<conio.h>和其他 CRT 标头中。对于在本地声明这些函数而不包含适当的 CRT 标头的任何程序来说,这是一项重大更改,会导致链接器错误(LNK2019,无法解析的外部符号)。如果可能,您应该更新代码以包含 CRT 标头(即 add #include <stdio.h>)和内联函数,但如果您不想修改代码以包含这些头文件,则另一种解决方案是添加额外的库您的链接器输入,legacy_stdio_definitions.lib。
要将此库添加到 IDE 中的链接器输入,请打开项目节点的上下文菜单,选择“属性”,然后在“项目属性”对话框中选择“链接器”,然后编辑“链接器输入”以将legacy_stdio_definitions.lib 添加到分号- 单独的列表。
如果您的项目链接到使用 2015 年之前的 Visual C++ 版本编译的静态库,链接器可能会报告无法解析的外部符号。_iob这些错误可能会引用、的内部 stdio 定义_iob_func,或以 的形式引用某些 stdio 函数的相关导入_imp_*。Microsoft 建议您在升级项目时使用最新版本的 Visual C++ 编译器和库重新编译所有静态库。如果该库是第三方库,其源代码不可用,则您应该向第三方请求更新的二进制文件,或者将该库的使用封装到一个单独的 DLL 中,然后使用旧版本的 Visual C++ 编译器进行编译和图书馆。
System_CAPS_warning警告
如果您使用 Windows SDK 8.1 或更早版本进行链接,则可能会遇到这些未解决的外部符号错误。在这种情况下,您应该通过添加到链接器输入来解决错误,legacy_stdio_definitions.lib如前所述。
| 归档时间: |
|
| 查看次数: |
18861 次 |
| 最近记录: |