Notes for Windows Users¶
glog defines the severity level ERROR, which is also defined by windows.h.
You can make glog not define INFO, WARNING, ERROR, and FATAL by defining
GLOG_NO_ABBREVIATED_SEVERITIES before including glog/logging.h. Even with
this macro, you can still use the iostream like logging facilities:
#define GLOG_NO_ABBREVIATED_SEVERITIES
#include <windows.h>
#include <glog/logging.h>
// ...
LOG(ERROR) << "This should work";
LOG_IF(ERROR, x > y) << "This should be also OK";
However, you cannot use INFO, WARNING, ERROR, and FATAL anymore for
functions defined in glog/logging.h.
#define GLOG_NO_ABBREVIATED_SEVERITIES
#include <windows.h>
#include <glog/logging.h>
// ...
// This won’t work.
// google::FlushLogFiles(google::ERROR);
// Use this instead.
google::FlushLogFiles(google::GLOG_ERROR);
If you don't need ERROR defined by windows.h, there are a couple of more
workarounds which sometimes don't work1:
#define WIN32_LEAN_AND_MEANorNOGDIbefore#include <windows.h>.#undef ERRORafter#include <windows.h>.
-
For more information refer to this issue. ↩