【问题标题】:xcode include paths conflictsxcode 包含路径冲突
【发布时间】:2011-01-06 19:44:08
【问题描述】:

在 MSVS 中,当我 #include 时,它会在与 #include "someheader" 包含的标头不同的文件夹中进行搜索。同样的东西应该在xcode中,但它似乎不起作用。因此,我与与 std 标头(String.h 等)具有相同名称的本地标头发生冲突,并且我不能包含 std 标头。我试图更改项目选项“始终搜索用户路径”,但它仍然不起作用。此选项的帮助消息说它将解决我的问题,但是...

如果启用,#include 样式和#include “header.h”风格的指令将 在“用户标题”中搜索路径 “标题搜索”之前的“搜索路径” 路径”,结果是用户 标头(例如您自己的 String.h header) 将优先于 使用#include 时的系统标头 。这是使用 -iquote 标志“用户标头搜索路径”中提供的路径。如果 禁用并且您的编译器完全 支持单独的用户路径,用户 标题只能通过

访问

包括“header.h”风格的预处理器指令。

出于向后兼容性的原因, 此设置默认启用, 但禁用它是强烈的 受到推崇的。 [ALWAYS_SEARCH_USER_PATHS]

你知道如何解决这个问题吗?我真的不想更改我的头文件名称或从项目设置中删除搜索路径并使用本地文件的相对路径(../../ ... /SomeFolder/SomeHeader.h)。

【问题讨论】:

  • 构建项目时使用的编译器命令行可能会为某人提供足够的详细信息来帮助解决此问题。这应该可以从一些构建日志中获得。
  • 我试图预处理一个虚拟 cpp 文件只包含一个包含 本地头文件:|
  • 命令行:setenv LANG en_US.US-ASCII setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin :/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -x c++ -arch armv7 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings - O0 -Wreturn-type -Wunused-variable -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk -mfix-and-continue -gdwarf-2 -mthumb -miphoneos-version-min=4.2 -引用

标签: c++ xcode include-path


【解决方案1】:

我通过将所有标题扩展名从 h 更改为 hpp 解决了这个问题...这不是一个真正的解决方案,但我保留了文件名并且我现在解决了这个问题:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2020-03-24
    • 2012-03-09
    • 2015-10-05
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多