【发布时间】:2014-07-09 14:40:12
【问题描述】:
我在这方面做了很多实验以及搜索。 How to add Poco library in Visual Studio 2010? 的 StackOverflow 响应很接近,但并不能完全解决我的问题。
具体来说,我正在尝试构建一个不依赖 Poco DLL 来运行的应用程序。当 DLL 存在时,应用程序运行良好。
在 Poco 的 lib 目录中,为本质上相同的库的许多版本提供了库,例如 CppUnit.lib、CppUnitd.lib、CppUnitmd.lib、CppUnitmdd.lib、CppUnitmt。 lib 和 CppUnitmtd.lib。
据我了解,“...mt”版本的 lib 文件允许应用程序以单片方式构建,而无需在运行时存在 Poco DLL。 (这是正确的吗?)
我正在使用 MS Visual Studio 2010,并试图鼓励链接器使用每个 Poco 库的“...mt”版本(用于调试构建的...mtd 版本。)
所有 Poco 库都在同一个目录中。我已将该目录路径添加到 Preferences>Project>Linker>General>Additional Library Directories,并且我已明确添加 CppUnitmt.lib;PocoFoundationmt.lib;PocoNetmt.lib 到 Preferences>Project>Linker>Input >其他依赖项。
链接似乎没有问题;构建成功。然而,当我运行我的应用程序时,我收到一条警告消息:“应用程序无法启动,因为您的计算机中缺少 PocoFoundation.dll。请尝试重新安装程序来解决此问题。”
总而言之,我的问题是:是否可以构建不需要访问 Poco DLL 的 Poco 应用程序,如果可以,我如何告诉 VS 2010 链接器这样做?
【问题讨论】:
-
字母(“md”/“mt”/等)必须与您自己的项目设置相匹配,以实现多线程和静态/dll 链接。参见例如this page 寻求帮助。
-
约阿希姆,感谢您的链接。这确实有助于我更好地理解链接器。
标签: c++ visual-studio-2010 dll linker poco