我首先在eclipse(mingw编译器)中制作了一个程序。现在我正在将代码翻译成VisualStudio2008。这是一个包含多个项目的解决方案。其中2个项目用于运行(控制台)程序。另外两个项目是这些项目的辅助类。我已经设置了项目依赖项,以便按照正确的顺序编译项目。我现在收到一条错误消息LNK2019和LNK1120,因为我在助手项目中没有main。我试着在没有链接的情况下编译助手项目,但我不知道该怎么做。我尝试添加-c编译器选项,但没有成功。我也尝试过在helper项目中添加一个无用的main,但在编译真正的main时编译失败,并带有"函数不能重载"。
我该如何解决这个问题,这样我就可以在没有main的情况下拥有helper项目?
如果您想创建一个辅助库,您必须使用项目类型Class Library
而不是Console Application
您可以将助手编译为静态库,并将其链接到主程序。
-
在解决方案资源管理器中右键单击项目以独立于整个解决方案进行编译。您也可以单独构建,这样可以执行编译和链接。
-
在Windows(我不确定Linux)中,DLL仍然需要一个入口点。传统名称为
DllMain
。如果你不想要一个入口点,那么你应该创建一个静态库,而不是DLL,它在链接时链接到你的应用程序中,而不是在运行时动态加载。您需要更改项目的属性,以便告诉它您现在正在创建一个静态库,而不是动态库。这将阻止链接器搜索
main
函数。您可能会发现本演练很有帮助。"函数不能重载"错误可能是因为您添加的伪
main
函数具有错误的签名。