2013-01-20 35 views
0

我想写一个简单的clang插件。所以我刚刚执行了一个在llvm-clang中提供的"PrintFunctionNames"插件。但是,当我试图执行一个命令:iostream致命错误

“铛-cc1 -load ../../Debug+Asserts/lib/libPrintFunctionNames.so -plugin打印FNS一些输入-file.c”

它给了我1个致命错误:

fatal error: 'iostream.h' file not found 
#include<iostream.h> 
     ^
1 error generated. 

我还使用提供路径包括'iostream'目录,但它仍然给了我同样的错误-I选项尝试。

我尝试了这样的:

“铛++ -I // USR /包括/ C++/4.6 -cc1 -load ../../../../Release+Asserts/lib /libPrintFunctionNames.so -plugin print -fns ak.cpp'

那么,我该如何做这项工作?

回答

1

不要在最后加上.h。

#include <iostream> 

这应该解决它。

0

在ISO标准化C++语言之后,名为iostream.h的头文件被重命名为iostream。改变你的程序使用#include <iostream>,而应该编译。

您还需要在每个包含之后添加using namespace std;语句(或将每个引用前缀的每个引用添加到带有std::的iostream函数/对象)。

您可以通过一旦你更舒适的命名空间使用此

#include <iostream> 
using namespace std; 

开始,你可以删除using声明&,而不是要么使用std::coutstd::cin等或有

using std::cout; 
using std::cin; 

等。

1

iostream属于C++不是C.所以你应该把它作为

#include <iostream> 

此外,因为你是在C++中,你应该为您的源代码文件的.cpp结束不.c来作出明确的编译器和其他人一样,你想用C++编程。您也可能需要在第一次编译调用时调用clang++(但我不确定插件的上下文)