解决multiple definition ofxxx
遇到了一次multiple definition of xxx错误,最后发现问题是包含xxx函数的头文件yyy.h中完整地实现了该xxx函数。
而头文件起到的是预编译的作用。之前我的程序编译的时候之所以没有报错是因为只有zzz.h中包含了yyy.h,只有一个文件调用该头文件。
直到另一个文件调用该函数,又预编译了一次,导致了multiple definition的问题。 解决办法是只在头文件中声明函数,而在c文件中实现该函数。
分离完成之后,在makefile中要记得加上 xxxx.cc。
fstream
没有ofstream这个头文件。 只有包含 这个头文件。
在写C++的文件输入输出的时候,不能写#include<ofstream>
。
endl来自哪个库
endl来自于iostream.hh库,所以#include<iostream>
在编译C++程序的时候出现了一个bug
util-debug.hh:73:14: error: ‘cout’ is not a member of ‘std’
std::cout << BOLDYELLOW << x << RESET << std::endl; \
这个bug看起来奇怪的地方在于明明这里写了std::endl,但是确报错说endl不是std的member。
后面发现,这个问题在于我是用宏写的:
#define FuncBegin()