我正在使用Visual Studio 2012。

我的解决方案有3个项目

项目

项目B

项目C

层次结构就像

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

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文件,该文件可以在运行时附加到您的程序中并提供其他功能。

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

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

    如果静态库对于您的应用程序而言过于繁重,则可以仅在项目中包含projectB和projectC文件(可选地,请注意使用命名空间,以免混淆类名)。这完全取决于您计划在这些“模块”中实现多少功能。

    关于c++ - 错误LNK1561 : entry point must be defined,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17228301/

    10-12 03:58