[Interest] QT_LARGEFILE_SUPPORT : macro redefinition.

Konrad Rosenbaum konrad at silmor.de
Mon Jun 9 10:18:03 CEST 2014


Hi,

On Sunday 08 June 2014 19:28:34 Bill Crocker wrote:
> I am upgrading a project from Qt 4.7.1 to Qt 4.8.6
> When I build this project on Windows, I now see this:
> 
>      c:\qt\4.8.6\include\qtcore\../../src/corelib/global/qconfig.h(46) :
>          warning C4005: 'QT_LARGEFILE_SUPPORT' : macro redefinition
>          command-line arguments :  see previous definition of
> 'QT_LARGEFILE_SUPPORT'
> 
> I am building in VisualStudio 2008 C++
> from an import of my .pro file.
> 
> Does anyone know what might be causing this?

As the friendly warning is telling you: QT_LARGEFILE_SUPPORT is defined both 
in qconfig.h and on the commandline given to your compiler.... ;-)

Short answer: ignore this one, it is harmless.

Long answer:

qconfig.h contains platform configurations for Qt, most command line 
parameters come from the mkspec of your platform. Both describe how your 
platform behaves in regards to Qt. For some odd reason this define appears 
in both without a guard.

As said above: it is harmless. Your compiler is just a bit picky about 
preprocessor symbols.

If you absolutely and positively cannot live with this warning:

A quickfix would be to include this _before_any_Qt_includes_(!!) in the cpp-
file that has this problem:

#ifdef QT_LARGEFILE_SUPPORT
#undef QT_LARGEFILE_SUPPORT
#endif

A more robust fix would be to put this into the beginning of qconfig.h.

It's important that this #define happens at least once, otherwise you'll 
have trouble handling big files.




	Konrad



More information about the Interest mailing list