具有多个项目的visual studio解决方案无法编译

时间:2012-01-13 13:31:22

标签: c++ visual-studio-2008 main lnk2019

我首先在eclipse(mingw编译器)中创建了一个程序。现在我正在将代码翻译成Visual Studio 2008。 这是一个包含多个项目的解决方案。其中2个项目用于运行(控制台)程序。其他2个项目是那些帮助类。我已经设置了项目依赖项,以便以正确的顺序编译项目。 我现在收到一条错误消息LNK2019和LNK1120,因为我在帮助程序项目中没有main。 我试图编译帮助项目没有链接,但我不知道我应该怎么做。我尝试添加-c编译器选项但不成功。我还尝试在辅助项目中添加一个无用的main,但是编译真正的main时编译失败,“函数无法重载”。

我如何解决这个问题,以便我可以在没有主要的情况下拥有帮助项目?

3 个答案:

答案 0 :(得分:3)

如果要创建帮助程序库,则必须使用项目类型Class Library而不是Console Application

答案 1 :(得分:1)

您可以将助手编译为静态库,并将其链接到主程序。

答案 2 :(得分:0)

  1. 右键单击解决方案资源管理器中的项目,以独立于整个解决方案进行编译。您也可以单独构建它们,它们同时执行编译和链接。

  2. 在Windows中(我不确定Linux),DLL仍然需要一个入口点。传统名称是DllMain。如果您不想要入口点,那么您应该创建一个静态库而不是DLL,它在链接时链接到您的应用程序,而不是在运行时动态加载。

    您需要更改项目的属性,以告诉您现在正在创建静态库,而不是动态库。这将阻止链接器搜索main函数。您可能会发现this walkthrough有帮助。

    “函数无法重载”错误可能是因为您添加的虚拟main函数具有错误的签名。