中。引用形式首先在本地文件夹中搜索,然后在/I指定位置,尖括号形式避免本地文件夹。 这意味着,在 M-6ren">
gpt4 book ai didi

c++ - #include - XCode 中的括号与引号?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:58:08 25 4
gpt4 key购买 nike

在 MSVC++ 中,#include 文件的搜索方式不同,具体取决于文件是包含在 ""还是 <> 中。引用形式首先在本地文件夹中搜索,然后在/I指定位置,尖括号形式避免本地文件夹。

这意味着,在 MSVC++ 中,可以使用与运行时和 SDK header 同名的 header 文件。

因此,例如,我需要包装 windows sdk windows.h 文件以取消定义一些引起麻烦的宏。使用 MSVS,我可以将(可选的)windows.h 文件添加到我的项目中,只要我使用引用的形式包含它即可:-

// some .cpp file
#include "windows.h" // will include my local windows.h file

在我的 windows.h 中,我可以使用尖括号形式引入真实的:

// my windows.h
#include <windows.h> // will load the real one
#undef ConflictingSymbol

在 XCode 中使用 GCC 尝试这个技巧没有奏效。系统头文件中的尖括号 #includes 实际上是在我的本地文件夹结构中查找具有相似名称的头文件。MSVC 系统意味着在我自己的文件夹结构中有一个“String.h”头文件是非常安全的。在 XCode 上,这似乎是一个主要的禁忌。

有没有什么方法可以控制 XCode 中的搜索路径行为,使其更像 MSVC 的行为?或者我是否只需要避免命名任何可能与系统 header 冲突的 header 。编写跨平台代码并使用大量框架意味着偶然冲突的可能性似乎很大。

最佳答案

你应该可以用 gcc 做同样的事情(我不知道 xcode 包装了多少东西并阻止了对某些功能的访问)。有很多选项控制搜索路径(参见 http://gcc.gnu.org/onlinedocs/gcc-4.5.0/cpp/Search-Path.htmlhttp://gcc.gnu.org/onlinedocs/gcc-4.5.0/cpp/Invocation.html 并查找 -iquote)。使用 -v 调用 gcc 将为您提供指定两者不同之处的路径。

关于c++ - #include - XCode 中的括号与引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com