【发布时间】: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]