【问题标题】:Qt-Creator on mac is unable to find headers in /usr/includeMac 上的 Qt-Creator 无法在 /usr/include 中找到标头
【发布时间】:2014-04-27 05:54:12
【问题描述】:

我在 Mac OS X 上使用 Qt-Creator 进行 C++ 开发(我不使用 Qt 本身)。奇怪的是,Qt-Creator 无法找到直接在 /usr/inlcude 中的任何文件。一切仍然可以编译,但我无法在 Qt-Creator 中使用自动完成或“跟随光标下的符号”等功能。

因此,对于像 iostream 这样的 C++ 头文件,一切都按预期工作,它会找到头文件并正确索引它们。但是如果我想使用 unistd.h 中的东西,Qt-Creator 找不到包含目录。我正在使用 clang 5.2(来自 Apple)和 Mac OS X 10.9.2。

我什至尝试将此(冗余)行添加到我的 CMakeLists.txt 文件中:

include_directories(/usr/include)

但这无济于事。这不是我不能忍受的事情,但它仍然令人沮丧。

【问题讨论】:

  • stackoverflow.com/questions/2752352/… 的可能重复项,您是否尝试过制作 .includes 文件?
  • 这应该不是必需的,因为我使用 CMake 创建了我的项目(并且 Qt Creator 应该知道所有需要的包含 - 这对我来说总是很好)。无论如何,我发现了问题并在下面发布了答案。

标签: cmake qt-creator


【解决方案1】:

所以我发现了问题(这真的很愚蠢)。我决定从命令行启动 Qt Creator。通过这样做,我看到了来自 clang 的错误消息,它们抱怨未知/错误的论点,这帮助我找到了问题。恕我直言,您从未在 GUI 中看到这些内容……

所以为了让 C++11 正常工作,我必须转到设置->构建和运行->编译器并制作一份 clang 并将“-std=c++11 -stdlib=libc++”添加到代码生成标志。我在那里犯了一个愚蠢的错字,而是写了“-std=c++11 -stdlib=c++”。由于 Qt Creator 仍然从 libc++ 中找到所有标头并激活了 c++11,因此我从不费心仔细检查这一点。但是把这个标志改成正确的就行了。

编辑:只是想补充一下:我发现它非常奇怪,Qt Creator 能够找到所有包含文件(我在几个不同的位置使用了几个第三方库 - 没有问题)除了 /usr/include 中的那些如果你搞砸了这些编译器标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2013-12-05
    相关资源
    最近更新 更多