What steps will reproduce the problem?
1. Use Visual Studio 2008. I think any other version is good too but I use the
one.
2. Donwload and build gflags.
3. Add gflags to linker paths and add the library to input.
4. Activate use of gflags by modyfing windows/confing.h: #define
HAVE_LIB_GFLAGS 1
5. Build glog and get lots of warnings like: "inconsistent dll linkage" (in
build) and "locally defined symbol XXXX imported" (in linking).
What is the expected output? What do you see instead?
No warnings. Many projects consider warnings as errors and this is the true way.
What version of the product are you using? On what operating system?
Trunk at Sep 15, 2011. Windows 7. MSVC 2008.
Please provide any additional information below.
Problem happens because of logging.h declares all the flags used in the logging
system. As a result same symbolы get delcared both as dllimport and dllexport.
It's nice to have all the flags explained in header file but most of them are
only needed by the system itself, just comments would be enough. Thouse who
want turning logging from their modules could declare the flags explicitly.
I removed "inconsistent dll linkage" warning by by commenting out all the flags
in logging.h and doing DECLARE in logging.cc. I can release them if anyone say
how to do that (I'm new in code.google).
IMO, header files must not forward declare flags, every module should
explicitly declare flags it uses. Flags have global namespace and this makes
troubles sometimes, let's avoid "headers hell" at least.
Original issue reported on code.google.com by rea...@gmail.com on 17 Sep 2011 at 8:09
Original issue reported on code.google.com by
rea...@gmail.com
on 17 Sep 2011 at 8:09