我已经对此进行了相当多的实验以及搜索。在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。
据我所知,lib文件的“... mt”版本允许应用程序单片构建,而不需要在运行时存在Poco DLL。 (这是正确的吗?)
我正在使用MS Visual Studio 2010,并试图鼓励链接器使用每个Poco库的“... mt”版本(... mtd版本用于调试版本。)
所有Poco库都在同一目录中。我已将该目录路径添加到首选项>项目>链接器>常规>其他库目录,我已明确地将 CppUnitmt.lib; PocoFoundationmt.lib; PocoNetmt.lib 添加到首选项>项目>链接器>输入&gt ;附加依赖。
链接似乎毫无障碍;构建成功。然而,当我运行我的应用程序时,我收到一条警告:“该应用程序无法启动,因为您的计算机缺少PocoFoundation.dll。请尝试重新安装该程序以解决此问题。”
总结一下,我的问题是:可以构建一个不需要访问Poco DLL的Poco应用程序,如果是这样,我该如何告诉VS 2010 Linker这样做?
答案 0 :(得分:1)
我从未使用Poco,因此请根据我自己对VS的一般经验(因为链接器设置使用具有相似名称的标志)以及其他项目来考虑以下假设。
你误解了"扩展"在文件名上。
那些代表MSVC运行时的类型已用于构建库(因为它通常应该与您自己的项目匹配,或者可能发生非常非常糟糕的事情):