【发布时间】:2018-04-15 03:19:16
【问题描述】:
背景
我在 Windows 10 上运行 Visual Studio Community 2015,编写 C++ 代码。
我收到了一个包含两个项目的解决方案。我需要创建其中一个项目的副本,但使用不同的源文件和头文件(包含大致相同的代码,但位于文件系统中的另一个位置)。
我要复制的项目使用了很多库,我不知道它们是如何设置的。我只知道它适用于该项目,我也需要它适用于重复项目。
问题
我遇到的问题是至少有一个库似乎无法识别。这会导致代码下方有一条红色波浪线,没有自动完成等。(这不再相关,请参阅 Edit 1)
尝试的解决方案
我尝试使用新的源文件创建一个新项目,将其添加到解决方案中,并通过右键单击现有项目、选择属性并复制任何未设置为其默认值的内容手动复制项目设置.这不起作用。
我尝试复制现有的 .vcxproj 文件,将它们添加到解决方案中,删除旧的并重新添加新的源文件和头文件。这不起作用。
在这两种情况下,在解决方案资源管理器中展开外部依赖项时,旧项目的列表比副本长得多。
我知道this question,但接受的答案取决于知道需要更改哪些设置。我不知道,也不知道怎么查。
问题
那么,有没有办法复制控制它的整套设置?
或者,有没有一种方法可以准确地检查现有项目为什么它能够解析特定的外部引用,以便我可以找出我需要在副本中更改哪些设置?
编辑 1 好吧,现在我觉得自己很愚蠢。几天来我一直在与这个问题作斗争,但我对我拥有的文件做了一些错误的假设。
事实证明,第二组头文件(位于文件系统中的新位置)与旧头文件相似,但并不完全相同。所以乍一看,它们看起来一模一样,我从不费心去检查。
新的头文件在相关的#include 语句之前有#if defined(WIN64),这当然是没有包含该库的原因。
所以,我的新问题是,在不修改头文件的情况下,#define WIN64 的明智方法是什么?我可以在哪里放置该定义以使其在该头文件中有效,而无需更改该头文件?
【问题讨论】:
-
你运行什么系统? Windows、Linux 还是 Mac?
-
@EdwinKepler 编辑添加我在 Win10 上
-
Visual Studio Community 2015 无论如何只能在 Windows 上运行。
-
@EdwinKepler 评论只能被点赞或标记。
-
您确定它是
WIN64而不是_WIN64(这是x64 Visual C++ 工具链的预定义宏)?您可以在预处理器属性页面上定义宏。
标签: c++ visual-studio dependencies dependency-management