【发布时间】:2016-01-12 22:40:09
【问题描述】:
我使用 Visual Studio 2013 用 C 语言编写程序,但出现此错误: MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
我不知道它是什么意思以及如何解决它。这是代码:
#include<stdio.h>
int getArr(int arr[]){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
return n;
}
void putArr(int arr[],int n)
{
for(int i=0;i<n;i++)
printf("%d\t",arr[i]);
printf("\n");
}
void sort(int Arr[],int nArr)
{
for(int i=0;i<nArr-1;i++)
{
int minIndex=i;
for(int j=i+1;j<nArr;j++)
if(Arr[j]<Arr[minIndex])
minIndex=j;
int t=Arr[i];
Arr[i]=Arr[minIndex];
Arr[minIndex]=t;
}
}
int main()
{
int arr[100];
int nArr;
nArr=getArr(arr);
sort(arr,nArr);
putArr(arr,nArr);
return 0;
}
【问题讨论】:
-
看起来您正在尝试将一个简单的 C 程序编译为 Windows 控制台应用程序。如果我没记错的话,我认为需要将
main命名为tmain.. -
@EugeneSh.:这将违反标准,包括 MSVC - IIRC - 声称符合标准的 C90。
-
看起来更像是损坏的工具链或错误的用法。 @AmirAli,请添加您正在使用的编译器以及如何调用它的信息。
-
@FelixPalmen 我使用常规的 Visual Studio 2013 和它自己的编译器
-
@AmirAli 所以都是在 VS 中完成的,没有命令行调用?那应该“正常工作”OOTB。在不分析代码的情况下,我可以向您保证,这不是导致 this 错误的代码。你应该在这里使用
int main(void),但这也不是问题......
标签: c visual-studio visual-c++ visual-studio-2013