1

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

我该如何解决这个问题,这样我就可以在没有 main 的情况下拥有辅助项目?

4

3 回答 3

3

如果你想创建一个帮助库,你必须使用项目类型Class Library而不是Console Application

于 2012-01-13T13:34:48.893 回答
1

您可以将帮助程序编译为静态库并将它们链接到您的主程序。

于 2012-01-13T13:34:36.740 回答
0
  1. 右键单击解决方案资源管理器中的项目以独立于整个解决方案进行编译。您也可以单独构建它们,执行编译和链接。

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

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

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

于 2012-01-13T13:37:44.007 回答