繁体   English   中英

Visual Studio 中用于 C++ 的其他包含目录

[英]Additional include directories in Visual Studio for C++

我有一个这样的文件夹结构:

母目录/Solution A/Project Aa/文件Aaa.h

母目录/Solution B/Project Bb/文件Bbb.h

我想在 Bbb.h 中包含 Aaa.h。

Bbb.h 看起来像这样:

#include <A/Aa/Aaa.h>

...

在项目 Bb 的属性中,我尝试过 C++ -> 常规 -> 附加包含目录:$(ProjectDir)../../../

或者我也试过../../../ 或 $(ProjectDir)../../..

没有任何效果。 我收到错误消息:“无法打开源文件“A/Aa/Aaa.h”。

如何将“Aaa.h”正确包含到 Bbb.h 中?

您的问题是“A”目录不在“B”目录中,并且#include <A/Aa/Aaa.h>从当前目录开始查找您提供的路径,因此它正在寻找:“ B/Bb/A/Aa/Aaa.h" 要解决此问题,您可以执行以下两项操作之一。

  1. 在 include 语句中指明 Aaa.h(相对于 Bbb.h)文件的实际位置: #include "../../A/Aa/Aaa.h>" (但是,使用这样的相对路径会生成许多编译器中的警告,因为它们不是真正可移植的。)
  2. 在包含文件夹列表中将目录(同样,相对于项目)添加为“../../A/Aa”,然后在包含行中提供文件名: #include "Aaa.h" (为了避免输入目录路径有任何混淆,您可以从“属性”弹出窗口中“浏览”实际文件夹。)

PS:虽然没有严格执行,但习惯是对系统目录中的 header 文件使用< > '引号'(如#include <iostream> )和用户提供的标题的传统引号(如#include "Bbb.h" ) .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM