c – #include – 括号与XCode中的引号?
发布时间:2020-12-14 17:36:07 所属栏目:百科 来源:网络整理
导读:在MSVC中,#include文件的搜索方式不同,具体取决于文件是包含在“”还是中.引用的表单首先在本地文件夹中搜索,然后在/ I指定的位置搜索,尖括号形式避免使用本地文件夹. 这意味着,在MSVC中,可以使用与运行时和SDK标头同名的头文件. 因此,例如,我需要包装window
在MSVC中,#include文件的搜索方式不同,具体取决于文件是包含在“”还是<>中.引用的表单首先在本地文件夹中搜索,然后在/ I指定的位置搜索,尖括号形式避免使用本地文件夹.
这意味着,在MSVC中,可以使用与运行时和SDK标头同名的头文件. 因此,例如,我需要包装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正在查找我的本地文件夹结构中具有相似名称的头文件. 有没有办法控制XCode中的搜索路径行为更像是MSVC?或者我只需要避免将任何可能与系统头冲突的任何标头命名.编写跨平台代码并使用大量框架意味着偶然冲突的可能性似乎很大. 解决方法
你应该能够用gcc做同样的事情(我不知道xcode包装了多少内容并阻止访问某些功能).控制搜索路径有很多选项(请参阅
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/cpp/Search-Path.html和
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/cpp/Invocation.html并查找-iquote).使用-v调用gcc将为您提供指定两者不同的路径.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |