error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被

vc2008 , 初学,还望讲的清楚简单点。谢了

在函数“function”中引用了无法解析的外部符号“symbol”

在 function 中找到了未定义的外部符号 (symbol)。若要解决此错误,请提供符号定义或移除引用它的代码。有关更多信息,请参见,

•函数内联问题

•自动(函数范围)变量

•缺少函数体或变量

下面的示例生成 LNK2019:

复制// LNK2019.cpp
// LNK2019 expected
extern char B[100]; // B is not in avilable to the linker
int main() {
B[0] = ' ';
}
声明但不定义静态数据成员时,也可能出现 LNK2019。下面的示例生成 LNK2019:

复制// LNK2019b.cpp
// LNK2019 expected
struct C {
static int s;
};

// Uncomment the following line to resolve.
// int C::s;

int main() {
C c;
C::s = 1;
}
请看下面的示例:

复制// LNK2019c.cpp
// LNK2019 expected
extern int i;
extern void g();
void f() {
i++;
g();
}
int main() {}
如果在生成中包含的某个文件中没有定义 i 和 g,链接器将生成 LNK2019。可以添加这些定义,方法是将包含这些定义的源代码文件包括为编译的一部分。或者可以将包含这些定义的 .obj 或 .lib 文件传递给链接器。

对于从早期版本升级到当前版本的 C++ 项目,如果定义了 __UNICODE 并且入口点为 WinMain,需要将入口点函数的名称更改为 _tWinMain 或 _tmain。

参考资料:http://msdn.microsoft.com/zh-cn/library/799kze2z(VS.80).aspx

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-11
一开始你建立的是什么工程?控制台工程的话就用 main,窗口工程的话就用winMain

两者的入口函数不同,不能混淆。
如果你还不太清楚,可以试着建立一个新工程,不要点空项目,让编译器自己生成一些代码你看看。

-----------
因为你用的 2008,他默认是 UNICODE,入口函数还是稍有变化,比如此时的窗口工程的主入口函数是 wWinMain
第2个回答  2010-05-10
把代码贴上来啊 而且贴上来英文报错

...无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被...
\/\/ LNK2019 expected extern int i;extern void g();void f() { i++;g();} int main() {} 如果在生成中包含的某个文件中没有定义 i 和 g,链接器将生成 LNK2019。可以添加这些定义,方法是将包含这些定义的源代码文件包括为编译的一部分。或者可以将包含这些定义的 .obj 或 .lib 文件...

...无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引...
一般来说可能是main()函数拼错 或printf()函数拼错 你这里就是main函数拼错了 光指出你的错误我局的没有很大意义,应该要从错误中总结经验

...无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引...
应该是win32 console类型

LNK1120,LNK2019
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用1>E:\\Vista\\Program Files\\Visual Studio 2008\\Projects\\3.9\\Debug\\3.9.exe : fatal error LNK1120: 1 个无法解析的外部命令1>生成日志保存在“file:\/\/e:\\Vista\\Program Files\\Visual Stud...

...@16,该符号在函数 ___tmainCRTStartup 中被引用
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用1>H:\\导出文件\\VS2010\\Win3_2\\Debug\\Win3_2.exe : fatal error LNK1120: 1 个无法解析的外部命令1>1>生成失败。求问,这个问题我已经找到了。。。main函数前面少了个空格,来...

c++无法解析的外部命令
void main() 写错了,是void main()不是void mian(),如果不是主函数就是没有添加相应的头文件。1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用。这句话的意思是void mian()函数在某个类中,没有添加累的头文件。

...无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup_百度知 ...
一般出现LNK2019错误都是库文件没添加造成的。项目--》属性--》配置属性--》链接器-》输入--》附加依赖项 在其中加入所需库文件,注意把库文件写进去,每个库文件后加分号,同时在“链接器--》常规--》附加库目录”中填入相应库所在目录。

...无法解析的外部符号 _main ,该符号在函数 _mainCRTStartup 中_百 ...
你建立的是console工程,console工程的入口是main,而不是WinMain,在链接时,就会找不到main 工程--> Setting--> Link 将\/subsystem:windows 改为 \/subsystem:console 即可

...@16,该符号在函数 ___tmainCRTStartup 中被引用 MSVC
你的工程设置有问题。你的工程肯定设置成win32应用程序了,所以会去连接WinMain函数。解决办法:重新建一个工程,选C++控制台程序。

...无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart
你的程序没有 main函数导致链接失败。需要写一个main函数作为程序入口。

相似回答