LNK2005:删除VC ++中已定义的错误

时间:2010-05-11 08:24:34

标签: c++ mfc

我之前也问过这个问题:

LNK2005: delete already defined error in VC++

我得到的答案是我应该使用动态版本的DLL。我做到了,编译得很好。 现在,但是当我把exe给我的一个同事来运行时,他们告诉我 - 他们不能运行它,因为它需要一些共享的dll,所以他们需要一个静态的。 当我尝试进行静态构建时,我得到了上一个链接中提到的错误。 是的,我需要提供一些其他文件与exe。 我在构建目录中也有.lib文件。我也应该提供一个吗?

无论我把它放在哪个目录上,我都可以在我的m / c上运行得很好。

任何帮助都非常感谢,因为我真的被卡住了。

提前致谢, Suchita

3 个答案:

答案 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。