两个同名文件在Visual Studio中提供链接器错误

Pup*_*ppy 6 c++ visual-studio-2010

我正在使用Visual Studio 2010来编译我的C++项目,并且链接器正在我的两个具有相同名称的文件上进行拦截 - 但它们位于完全不同的目录中.如何让链接器识别出它们是不同的文件?

ald*_*ldo 15

我认为问题来自于所有.obj文件都写入同一文件夹的事实,因此编译这两个源文件的输出会发生冲突.我认为至少有两种可能的解决方案:

1)为每个输入文件夹使用不同的输出目录(构建目录)2)为每个(或仅一个)源文件创建自定义对象文件名

我不确定第一个选项,但是对于第二个选项,您应该能够在解决方案资源管理器中右键单击源文件,选择"属性",并找到一些配置设置来覆盖输出(.obj) )为该源文件创建的文件.

  • 是的,就是这样。它们都以文件名作为 obj 名称写入同一个文件夹,即使它们来自不同的目录。一个非常愚蠢的设计,IMO。但是,重新配置两者之一的输出名称可以解决问题。谢谢! (2认同)

Fla*_*viu 8

使用$(IntDir)%(RelativeDir)在“目标文件名”属性

(配置属性 -> C/C++ -> 输出文件 -> 对象文件名)

  • 项目,或
  • .cpp 文件。

这是来自相关问题VisualStudio project with multiple sourcefiles of the same name? .