2016 - 2024

感恩一路有你

为什么错误LNK2019会出现在编译中?

浏览量:1299 时间:2024-07-28 16:38:41 作者:采采

在进行C 编译过程中,有时候会出现error LNK2019错误提示。这个问题通常是由于程序的main函数入口和subsystem不匹配所引起的。本文将介绍如何解决这个问题。

SubSystem的定义

在Visual Studio中,SubSystem指定了应用程序的执行环境。我们可以在项目属性的Linker选项卡下看到SubSystem的设置。它有两个选项:Console (/SUBSYSTEM:CONSOLE)和Windows (/SUBSYSTEM:WINDOWS)。

如果应用程序使用控制台窗口进行输入输出操作,那么要选择Console;否则,选择Windows。

不匹配的main函数入口

当编写C 程序时,main函数是程序的入口函数。但是,在不同的情况下,它的声明可能会有所不同:

int main(){

// ...

}

或者

int main(int argc, char* argv[]){

// ...

}

如果你的程序使用第一种方式声明main函数,那么SubSystem应该选择Console;如果使用第二种方式,则应该选择Windows。

解决方法

为了解决error LNK2019错误,我们需要正确地匹配main函数的声明和SubSystem的设置。

如果程序的main函数是:

int main(){

// ...

}

那么,在项目属性的Linker选项卡下,SubSystem应该设置为Console (/SUBSYSTEM:CONSOLE)。

如果程序的main函数是:

int main(int argc, char* argv[]){

// ...

}

那么,在项目属性的Linker选项卡下,SubSystem应该设置为Windows (/SUBSYSTEM:WINDOWS)。

正确匹配之后,重新编译程序,就不会再出现error LNK2019错误了。

结论

在进行C 编译过程中,如果main函数的声明和SubSystem的设置不匹配,就会出现error LNK2019错误。要解决这个问题,我们只需要根据程序的实际情况,正确地设置SubSystem即可。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。