在VS2008的开发环境中,一个项目中若有若干个源文件,那么在编译之前将他们全部添加到相应的源文件及头文件夹下这是必然的,但是它的一些标准头文件,如<iostream>这一类的头文件,里面只有标准输入输出函数的声明,具体如下:
extern istream &cin;
extern ostream &cout;
extern ostream &cerr;
extern ostream &clog;
extern wistream &wcin;
extern wostream &wcout;
extern wostream &wcerr;
extern wostream &wclog;
而cin、cout这些具体的函数则在与iostream不同的另外一个文件夹下,在预编译时,IDE只做相应的代换,IDE是如何知道具体函数在什么地方呢? 这里一定存在编译时的路径搜索问题,它一定有一些默认的搜索路径。如果这种假设是正确的,我们新建一个项目,自己建立一个 int fun()函数,在源文件中只进行声明,具体实现放在一个fun.cpp文件中,把这个文件拷贝到安装目录下的include文件夹,默认的搜索路径中应该包含它,注意,刚才那个工程中源文件选项中没有添加fun.cpp文件。即假设fun.cpp文件是标准头文件中包含的标准文件,它会在编译时默认搜索到。可具体在做的时候发现,这样是行不通的,不知道为什么?希望有懂的高手不吝赐教,在这里先谢谢各位。
PS:我尝试着把声明放在iostream中,也不行,把fun.cpp放在与cout同一文件夹下,还是不行。