编写C++简易Log类编译出现LNK2019链接错误,请问是什么原因?
报错原因
你遇到的LNK2019报错和当前编写的Log类代码本身没有关联,问题出在项目缺少C++控制台程序必需的入口函数main。
MSVC链接器生成可执行文件时,会默认查找控制台程序的标准入口点main,你目前仅编写了Log类的声明与实现代码,没有定义main函数,因此链接时无法解析对应的入口符号,抛出了该报错。
解决方案
有两种可行的修复方式,根据你的开发需求选择即可:
- 如果你要生成可运行的控制台程序,新增一个
main.cpp文件写入入口函数即可,示例代码如下:
#include "Log.h" int main() { // 以下是Log类的测试示例,可根据需求修改 Log logger; logger.SetLogLevel(Log::LevelInfo); logger.Info("日志模块初始化完成"); logger.Warn("这是一条测试警告"); logger.Error("这是一条测试错误"); return 0; }
- 如果你只是要封装Log类为静态库供其他项目调用,不需要生成可执行文件,修改项目配置即可:打开项目属性页,在「常规」选项卡中将「配置类型」从「应用程序(.exe)」修改为「静态库(.lib)」,无需再提供
main函数即可正常编译。
内容的提问来源于stack exchange,提问作者razz
相关产品推荐
相关产品推荐

