我之前也问过这个问题:
LNK2005: delete already defined error in VC++
我得到的答案是我应该使用动态版本的DLL。我做到了,编译得很好。 现在,但是当我把exe给我的一个同事来运行时,他们告诉我 - 他们不能运行它,因为它需要一些共享的dll,所以他们需要一个静态的。 当我尝试进行静态构建时,我得到了上一个链接中提到的错误。 是的,我需要提供一些其他文件与exe。 我在构建目录中也有.lib文件。我也应该提供一个吗?
无论我把它放在哪个目录上,我都可以在我的m / c上运行得很好。
任何帮助都非常感谢,因为我真的被卡住了。
提前致谢, Suchita
答案 0 :(得分:2)
见Microsoft's Scenarios for Deployment Examples(这包括2和3)
有三种方式
1)单独安装Visual Studio可再发行组件包作为@Vicky的答案
2)构建包含Visual Studio可再发行组件包
的安装包3)将C ++ Dll复制到与应用See heading Deploying Visual C++ library DLLs as private assemblies
相同的目录中答案 1 :(得分:0)
他们可能只需要为您构建的Visual Studio的任何版本安装Visual Studio可再发行组件包。您可以从MS下载。
答案 2 :(得分:0)
如果链接到动态RTL,则动态RTL必须存在于要运行可执行文件的系统上。在这些计算机上安装可再发行组件包。随程序提供的安装程序将执行此操作。
除非您确切知道自己在做什么,否则在将不同的EXE / DLL链接在一起时,不应链接到静态RTL。