【问题标题】:c++ include from another solutionc ++包含来自另一个解决方案
【发布时间】:2016-04-10 18:10:47
【问题描述】:

我有两个 VS2013 解决方案 A 和 B。我的解决方案 B 包含多个项目,最初编译为可执行文件,但我想在解决方案 A 中使用它的功能,所以我将其编译更改为 .lib 文件。

我将 B 中的 .lib 文件添加到我的解决方案 A 中,但我仍然必须包含标题。 当我尝试像这样包含它们时:

#include <SolutionB/ProjectB1/header1.h>

header1.h 尝试包含

#include "globals.h"

globals.h 显然位于 /SolutionB/ProjectB1/ 路径中,因此解决方案 A 找不到。 让 SolutionA 找到所有正确标题的最简单方法是什么? 由于 SolutionB 很大,我不想将它复制到 SolutionA 文件夹中(这也会使 .lib 文件过时?),我也不想重写 SolutionB 中的每个#include 指令。 有没有可能这样做?

非常感谢

【问题讨论】:

  • 为什么不简单地将A中标题的相对包含路径添加到解决方案B的相关项目中?
  • @Christophe 我不完全明白我应该怎么做?您的意思是我应该将每个路径 /SolutionB/ProjectB*/ 添加到我的项目的 VC++ 目录下的“包含目录”中吗?包含目录是否仅用于包含''而不是'""'?如果我将目录添加到“源目录”,它会起作用吗?
  • “是否包含目录仅适用于包含 '' 而不是包含 '""'?” 是的,这就是您应该使用 @987654323 的原因@,不是""

标签: c++ visual-studio-2013 include solution


【解决方案1】:

#include 在一组目录中搜索指定的标头。解决方案 B 不在此目录列表中,因此 #include 找不到标题。

在 Visual Studio 2015 中(应该适用于所有其他版本):

  1. 转到项目 -> ...属性
  2. 转到配置属性 -> VC++ 目录
  3. 在包含目录下,您可以将路径附加到解决方案 B ((some other path);your\path\to\solution\b) 的文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2014-01-06
    相关资源
    最近更新 更多