编译错误:LIBCMT.lib(ctr0.obj):error LNK2001

时间:2021-03-28 17:12:48
已经发布的一个工程,别人重新打开进行编译后,会出现如下的错误提示:

LiBCMT.lib(ctr0.obj):error LNK2001:外部symbol "_Main"未解决。
cl.exe执行错误。。

对对方的编译选项设置不是很清楚,看了一下,可能是跟run time library 或者多线程有关,应该如何设置??

6 个解决方案

#1


你肯定在程序中使用了一些标准的C语言函数,如mem*函数。如果你想知道到底是哪个函数,可以在工程设置的ignore libraries中输入Libcmt.lib。再次链接时,会报告一些函数找不到,你就可以知道是哪些函数了。如果这些函数是必须的,解决的办法就是从工程设置中删除_ATL_MIN_CRT。 

#2


1.打开Project->Setting->C/C++下Project Options内有一个_Console,改为_WINDOWS
2.Project->Setting->Link下有一个console,改为windows
做完这两步就可以了

#3


Project Setting->C/C++:分类:Preprocessor
Project Setting->C/C++:分类:Code Generation
主要在以上两处设置

#4


Project->setting...->c/c++ 

Category ->Preprocessor-->Preprocessor definition: 

remove _ATL_MIN_CRT flag

#5


问题是因为c0der所说的预编译器命令的问题,删掉就没关系了:P

#6


试一下这个方法:这个主要是引入静态库时的问题
Project Settings ->General中:
设置Microsoft Foundation Classes:
Use MFC in a Static Library

#1


你肯定在程序中使用了一些标准的C语言函数,如mem*函数。如果你想知道到底是哪个函数,可以在工程设置的ignore libraries中输入Libcmt.lib。再次链接时,会报告一些函数找不到,你就可以知道是哪些函数了。如果这些函数是必须的,解决的办法就是从工程设置中删除_ATL_MIN_CRT。 

#2


1.打开Project->Setting->C/C++下Project Options内有一个_Console,改为_WINDOWS
2.Project->Setting->Link下有一个console,改为windows
做完这两步就可以了

#3


Project Setting->C/C++:分类:Preprocessor
Project Setting->C/C++:分类:Code Generation
主要在以上两处设置

#4


Project->setting...->c/c++ 

Category ->Preprocessor-->Preprocessor definition: 

remove _ATL_MIN_CRT flag

#5


问题是因为c0der所说的预编译器命令的问题,删掉就没关系了:P

#6


试一下这个方法:这个主要是引入静态库时的问题
Project Settings ->General中:
设置Microsoft Foundation Classes:
Use MFC in a Static Library