每次我制作一个新程序时我都会在编译时遇到这个错误,以前我用的是2012而且从来没有遇到过这个问题,但现在我每次都看到这个:
错误:
Error 2 error LNK2019: unresolved external symbol
"public: __cdecl lonework::App::App(void)" (??0App@lonework@@Q$AAA@XZ)
referenced in function "public: void __thiscall <lambda_b6bf150325cab1ba448790bcac21fea0>::operator()(class Windows::UI::Xaml::ApplicationInitializationCallbackParams ^)
const " (??R<lambda_b6bf150325cab1ba448790bcac21fea0>@@QBEXP$AAVApplicationInitializationCallbackParams@Xaml@UI@Windows@@@Z) C:\Users\Logan\Documents\Visual Studio
2013\Projects\lonework\lonework\lonework.Windows\XamlTypeInfo.g.obj lonework.Windows
目前正在处理的代码:
#include <pch.h>
#include <conio.h>
#include <stdio.h>
#include <Windows.h>
int yes();
int no();
int main()
{
char choice;
printf("Think of a number between one and ten\n");
Sleep(2000);
printf("Got it yet?\n Y/N ");
scanf_s("%c", &choice,1);
if (choice == 'y' || choice == 'Y')
{
printf("That's good");
yes();
}
else if (choice == 'n' || choice == 'N')
{
printf("Are you really that slow");
no();
}
getchar();
return 0;
}
int yes()
{
printf("Good for you, keep thinking about it...\n");
printf("Now think of another one, a different one\n Got it?\n I'll assume yes, sounds good.\n Now I'll tell you your number.\n");
printf("...\n");
Sleep(2000);
printf("...\n");
Sleep(2000);
printf("Ahem, 3 and 7");
return 0;
}
int no()
{
printf("Alright, back to the top.\n");
main();
return 0;
}
答案 0 :(得分:1)
确保在创建新项目时选择空项目或C ++控制台应用程序而不是托管C ++应用程序。
答案 1 :(得分:0)
对于这段代码你不需要include pch.h
,实际上VS没有附带这样的文件。
有两种方法可以纠正这个
1。)在VS中点击
Win32 Application
,precompiled header
,Security Development Lifecycle (SDL) checks
,#include <pch.h>
现在你可以编译并运行它了。或
2.)在包含该项目的VS解决方案中:
Properties
点击左侧的C/C++
标签在Precompiled headers
colume的右侧,从use
更改为Not Using Precompiled Headers
点击“应用
AssemblyInfo
”,右键单击并删除该文件
选择删除现在删除第一行#include <pch.h>
编译并运行
实际上你正在用Visual C ++编译C代码,所以当你创建一个新项目时,你必须取消检查SDL检查(安全开发生命周期)
另一种简单的方法是在解决方案资源管理器上右键单击blank C++ project
创建一个新的source files
。点击add
,点击new item
,然后选择C++ File
,现在将代码粘贴到其中并运行它。如果您要开始新项目,这是最简单的方法。