![](/img/trans.png)
[英]error : unresolved external symbol _main referenced in function ___tmaincrtstartup
[英]unresolved external symbol _main referenced in function ___tmainCRTStartup
我一直在收到以下错误消息:当我尝试编译c ++控制台应用程序时,“函数_ _tmainCRTStartup中引用了未解析的外部符号main ”。 我进行了一些搜索,发现所有的更改都是将“链接器”从Windows更改为控制台,反之亦然。 这没有用,我什至尝试创建一个新的控制台应用程序。
我不确定是什么原因引起的, template <typename T>
是否有可能引起混淆,因为它出现在两个文件中? 在这里的任何帮助将不胜感激。
下面的代码:
Main.cpp:
#include <iostream>
#include "tools.h"
using namespace tools;
template <typename T>
int main()
{
T input1;
T input2;
std::cout << "Enter in 1st number: " << endl;
std::cin >> input1;
std::cout << "Enter in 2nd number: " << endl;
std::cin >> input2;
std::cout << "num1 - num2 = [" << numberDifference(input1, input2) << "]" << endl;
getchar();
getchar();
return 0;
}
Tools.h:
#include <iostream>
namespace tools
{
template <typename T>
T numberDifference(T num1, T num2)
{
if(num1 > num2)
return num1 - num2;
else
return num2 - num1;
}
};
删除main
功能的template
定义。
或者至少从适当的main
函数调用它。
例如
template< typename T >
int templated_main( int c, char** argv )
{
// What was in your original main function....
}
int main( int c, char** argv )
{
return templated_main<int>( c, argv );
}
在main之前删除template <typename T>
。 这将使main
成为模板功能。
并改变T input1; T input2;
T input1; T input2;
到某些特定类型,例如int
或float
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.