![]() |
1
93
只是想交叉发布我认为是答案的内容,如果您打开整个项目的属性,并更改下面的值
美元(intdir)/%(relativedir)/ 在vs 2010下,我相信这将消除所有对象文件的歧义(因为我相信Windows不会让你在任何疯狂的情况下在同一个目录中有两个同名的文件)。请同时查看详细信息 here . |
![]() |
2
125
我对链接器警告也有类似的问题
LNK4042:对象指定了多次;忽略附加项
. 在我的例子中,Visual Studio试图编译具有相同名称的头文件和源文件-
|
![]() |
3
8
右击“解决方案资源管理器”窗口中的.CPP文件、属性、C/C++、输出文件、对象文件名设置。默认值为
你可以改变设置,比如
或者您可以更改.cpp文件名,使.obj文件不会互相覆盖。在两个目录中拥有完全相同的文件有点奇怪。 或者可以创建多个项目,例如为标识和范围中的文件创建.lib项目。例如,通常在makefile项目中完成。但是,除非使用项目属性表,否则这会使管理编译和链接设置更加麻烦。 |
![]() |
4
5
右键单击头文件-&属性;-gt;ItMyType(选择C/C++头)。用CPP文件做同样的操作,但是选择C/C++编译器(这是我的工作) |
![]() |
5
4
我使用$(in didir)\%(目录)在C/C++ +gt;输出文件-gt;“对象文件名”。 |
![]() |
6
3
我对stdafx.cpp有问题。不知为什么stdafx.cpp被复制了,所以还有第二个stdafx.cpp(注意不同的情况)。 在我取出stdafx.cpp之后,一切正常! 使用VS 2010。 |
![]() |
7
3
除了删除和生成新文件,您还可以更改编译/包含设置。
去你的
VCXPROJ
文件,用编辑器打开它,找到类似HTML的行
它应该看起来像:
和
假设您的实现文件是.cpp,声明是.hpp。如果您有多个声明文件,请确保您的所有实现文件都列在第一节和第二节之间。 |
![]() |
8
2
我以前在同一个项目中 C 和 CPP 档案带 相同的文件名 . 文件放在到处的文件夹中,其他人提供的解决方案造成了混乱,文件夹地狱(在我的情况下)。偶数 释放 生成将覆盖 调试 建造! 一个好的(不完美的)解决方案是使用$(parentname),但是由于某些超出任何人所能理解的原因,它已从Visual Studio(2015+)的较新版本中删除。 我现在成功使用的是: $(intdir)%(文件名)%(扩展名).obj 至少分开了 C 从生成对象文件 CPP . |
|
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
![]() |
Cobra_Fast · 如何查找不必要的空运算符? 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |