2017-10-28 180 views
0

我对我与Sierra和Xcode9.0.1塞拉利昂,cpp命令可抛“的iostream”找不到文件

我编译克以下的Hello World代码的MacBook Pro之后的tutorial ++没有问题。

#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 
+0

'cpp'命令是预处理器。它本身可能不知道系统头文件的位置。您可能需要使用'-I'(大写的i)选项来指定系统头文件搜索路径。 –

+0

谷歌搜索后,我发现['cpp'](http://www.tutorialspoint.com/unix_commands/cpp.htm)是Linux中的c预处理器的名称,可能也在OS/X中。 (因为它只进行预处理(例如,以'#'为前缀的语句),它也可以用于C++文件。)也许,你可以尝试'man cpp'来了解更多信息。它可能没有默认的正确包含目录。要检查这个,你可以尝试'cpp -I'和文件'iostream'所在的路径。 – Scheff

+0

谢谢,所以下面你的评论我试过这个:cpp -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream hello.cpp 但是得到了: 铛:error:no such file or directory:'c' clang:warning:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream:'linker'input unused [ -Wunused的命令行参数的] – BlackSwing

回答

0

既然你有一个工作g++编译器,你可以使用以下命令行获取预处理输出:

g++ -E hello.cxx | more

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