错误LNK1561:必须定义入口点

我正在使用Visual Studio 2012。

我的解决方案有3个项目

了projectA

项目B

项目C

而层次结构就像

projectC依赖于projectB ,而projectB又取决于projectA 。 projectC中有一个main函数 ,projectB和projectA中没有main。 我得到的错误是:

error LNK1561: entry point must be defined projectA error LNK1561: entry point must be defined projectB 

我已尝试在配置属性 – >链接器 – >系统 – >子系统更改为控制台(/ SUBSYSTEM:CONSOLE)但问题仍然存在

帮助我解决这个问题。

看来,你误解了“模块”一词。 Visual Studio中没有这样的C ++项目; C ++项目可以分为三类:

  • 程序 – 编译产生一个exe文件,可以执行;
  • 静态库 – 编译生成一个lib文件,该文件可以包含在另一个项目中并在编译期间链接;
  • 动态库 – 编译生成一个dll文件,该文件可以在运行时附加到您的程序并提供其他function。

根据您的描述,您希望projectB和projectC成为静态库,而是将它们创建为可执行文件。 再次运行新项目向导并选择“静态库”而不是“Windows应用程序”。

您可以在MSDN库中阅读有关静态库的更多信息。

如果静态库对于您的应用程序来说太重要了,您可以在项目中包含projectB和projectC文件(可选择处理名称空间而不要混淆类的名称)。 这完全取决于您计划在这些“模块”中实施多少function。

将属性 – >链接器 – >系统 – >子系统设置为“Windows(/ SUBSYSTEM:WINDOWS)”

我猜你正在使用Windows创建这个项目,对我来说,如果我经常使用SDL我得到这个错误,你所要做的就是输入#include 来修复它,如果没有,那么我不确定如何解决这个问题。