【问题标题】:Sierra, cpp command throwing 'iostream' file not foundSierra,cpp 命令抛出“iostream”文件未找到
【发布时间】:2017-10-28 10:46:38
【问题描述】:

我正在使用 Sierra 和 Xcode9.0.1 在我的 macbook pro 上关注 tutorial

我用g++编译了下面的hello world代码没有问题。

#include <iostream>
main() {
    using namespace std;
    cout << "Hello, World!" << endl;
}

但是当我执行时

cpp hello.cxx | more

按照教程的要求,我收到以下错误消息:

hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
         ^~~~~~~~~~
1 error generated.
# 1 "hello.cpp"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 330 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "hello.cpp" 2

【问题讨论】:

  • cpp 命令是预处理器。它本身可能不知道系统头文件的位置。您可能需要使用-I(大写i)选项来指定系统头文件搜索路径。
  • 谷歌搜索后,我发现cpp 是 Linux 中 c 预处理器的名称,可能也在 OS/X 中。 (因为它只进行预处理(例如前缀为 # 的语句),它也适用于 C++ 文件。)也许,您尝试man cpp 以了解更多信息。默认情况下,它可能没有正确的包含目录。要检查这一点,您可以尝试 cpp -I 和文件 iostream 所在的路径。
  • 谢谢,所以按照您的评论我尝试了这个:cpp -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream hello.cpp但得到:clang:错误:没有这样的文件或目录:'c'clang:警告:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream:'linker'输入未使用的 [-Wunused-command-line-argument]

标签: c++ xcode clang iostream


【解决方案1】:

由于您有一个工作的g++ 编译器,您可以使用以下命令行来获取预处理输出:

g++ -E hello.cxx | more

-E 选项指示编译器驱动程序执行预处理器并发出预处理后的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 2017-03-05
    • 2012-12-31
    • 2018-05-09
    • 1970-01-01
    • 2021-04-16
    • 2019-06-28
    相关资源
    最近更新 更多