C++ LNK1120 和 LNK2019 错误:“未解析的外部符号 WinMain@16”
Posted
技术标签:
【中文标题】C++ LNK1120 和 LNK2019 错误:“未解析的外部符号 WinMain@16”【英文标题】:C++ LNK1120 and LNK2019 errors: "unresolved external symbol WinMain@16" 【发布时间】:2009-08-09 19:37:31 【问题描述】:我正在尝试从 Deitel 的书中做另一个练习。该程序计算每月利息并打印每个储户的新余额。由于该练习是与动态内存相关的章节的一部分,因此我使用“new”和“delete”运算符。出于某种原因,我收到以下两个错误:
LNK2019:函数 ___tmainCRTStartup 中引用的未解析外部符号 WinMain@16
致命错误 LNK1120:1 个未解决的外部问题
这是类头文件。
//SavingsAccount.h
//Header file for class SavingsAccount
class SavingsAccount
public:
static double annualInterestRate;
SavingsAccount(double amount=0);//default constructor intialize
//to 0 if no argument
double getBalance() const;//returns pointer to current balance
double calculateMonthlyInterest();
static void modifyInterestRate(double interestRate):
~SavingsAccount();//destructor
private:
double *savingsBalance;
;
具有成员函数定义的 Cpp 文件
//SavingsAccount class defintion
#include "SavingsAccount.h"
double SavingsAccount::annualInterestRate=0;//define and intialize static data
//member at file scope
SavingsAccount::SavingsAccount(double amount)
:savingsBalance(new double(amount))//intialize savingsBalance to point to new object
//empty body
//end of constructor
double SavingsAccount::getBalance()const
return *savingsBalance;
double SavingsAccount::calculateMonthlyInterest()
double monthlyInterest=((*savingsBalance)*annualInterestRate)/12;
*savingsBalance=*savingsBalance+monthlyInterest;
return monthlyInterest;
void SavingsAccount::modifyInterestRate(double interestRate)
annualInterestRate=interestRate;
SavingsAccount::~SavingsAccount()
delete savingsBalance;
//end of destructor
最终结束驱动程序:
#include <iostream>
#include "SavingsAccount.h"
using namespace std;
int main()
SavingsAccount saver1(2000.0);
SavingsAccount saver2(3000.0);
SavingsAccount::modifyInterestRate(0.03);//set interest rate to 3%
cout<<"Saver1 monthly interest: "<<saver1.calculateMonthlyInterest()<<endl;
cout<<"Saver2 monthly interest: "<<saver2.calculateMonthlyInterest()<<endl;
cout<<"Saver1 balance: "<<saver2.getBalance()<<endl;
cout<<"Saver1 balance: "<<saver2.getBalance()<<endl;
return 0;
我花了一个小时试图解决这个问题,但没有成功。
【问题讨论】:
【参考方案1】:转到“链接器设置 -> 系统”。将“子系统”字段从“Windows”更改为“控制台”。
【讨论】:
【参考方案2】:看起来您正在编写一个标准控制台应用程序(您有 int main()
),但链接器希望找到一个 Windows 入口点 WinMain
。
在您项目的属性页中,在链接器部分的系统/子系统选项中,您是否选择了“Windows (/SUBSYSTEM:WINDOWS)”?如果是这样,请尝试将其更改为“控制台 (/SUBSYSTEM:CONSOLE)”
【讨论】:
【参考方案3】:创建新项目时,选择“Win32 Console Application”而不是“Win32 Project”。
【讨论】:
以上是关于C++ LNK1120 和 LNK2019 错误:“未解析的外部符号 WinMain@16”的主要内容,如果未能解决你的问题,请参考以下文章
QT Creator - LNK2019 和 LNK1120 错误 [重复]
VISUAL C++调试时出现LNK2001 与 LNK1120错误
Visual Studio 2010 - 致命错误 LNK1120: 1 unresolved externals; C++
python setup.py安装错误LNK2019:函数致命错误LNK1120中引用的无法解析的外部符号fmin:
radial.o:错误 LNK2001:无法解析的外部符号 lambda_fatal 错误 LNK1120:8 个无法解析的外部,error.failed 退出状态为 1120