C++头文件包含了,还打不开?

//abc.cpp
#include <iostream>
#include "printBinary.h"
using namespace std;

void main()
{
char a=8;
printBinary(a);

}

//printBinary.cpp
#include <iostream>
void printBinary(const unsigned char val) {
for(int i = 7; i >= 0; i--)
if(val & (1 << i))
std::cout << "1";
else
std::cout << "0";
} ///:~

//printBinary.h
void printBinary(const unsigned char val);
1建工程
2添加文件 printBinary.h 和printBinary.cpp
3编辑 abc.cpp
PS:
工程和 printBinary.h 和printBinary.cpp不在一个目录,
出现No such file or directory//找不到printBinary.h
但是在工程里面头文件里面有了printBinary.h ,为什么会这样?
我把printBinary.h 复制到工程目录就好了,哪位大虾解释下?

包含头文件里面如果没有写路径就必须是在当前路径或系统路径中存在的。
解决方法:
1,你所用的那个方法,也即拷贝到同一路径下
2,include中加上相对路径,比如"a/printBinary.h"
3,在项目属性中设置include路径。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-09
文件在工程的编辑器里,不代表它是工程的文件,可能路径并不相同,必须让新建文件和工程产生联系,工程在编译时才会去连接它。

当你把文件复制到工程目当下时,因为工程目录是你的工作目录,所以在编译时会自动在这个目录里找文件,所以就会OK~
第2个回答  2009-03-09
如果你的头文件不在当前目录下需要在makefile里加上-I选项指定头文件所在的目录,如果在vc下就直接在include里加上你的头文件所在的目录就行了。
第3个回答  2009-03-09
在开头写上#include "printBinary.h" ,系统默认你的printBinary.h就在你建立的工程里,编译系统就在你的工程里找文件
第4个回答  2009-03-09
-I include_path
相似回答