Re: Compilation failures using qmake + mingw / msvc

Matthias Pospiech <[email protected]> Wed, 18 Nov 2009 23:26:33 +0100
Newsgroups gmane.comp.gnu.source-highlight.general
Message-ID <[email protected]>
Lorenzo Bettini schrieb:
> Matthias Pospiech wrote:
>> Lorenzo Bettini schrieb:
>>> Matthias Pospiech wrote:
>>>> Lorenzo Bettini schrieb:
>>>>>
>>>>> P.S. it looks like building boost with msvc is fully supported: 
>>>>> http://www.boost.org/doc/libs/1_41_0/more/getting_started/windows.html 
>>>>>
>>>>>
>>>> building boost is not a problem, I have a problem to tell qmake 
>>>> where the include files are, since it does not find them.
>>>
>>> you should pass to qmake these options
>>>
>>> INCPATH+="/usr/local/include" LIBS+="-L/usr/local/lib -lboost_regex"
>>>
>> I am not using linux, so it reads
>>
>>    debug:  LIBS += -Llib/boost/regex/mingw/debug 
>> -lboost_regex-mgw34-mt-d-1_40
>>    release:LIBS += -Llib/boost/regex/mingw/release 
>> -lboost_regex-mgw34-mt-1_40
>>
>
> yes, it's the same, I just meant that instead of polluting the .pro 
> file you can pass these options to qmake at the command line :)
>
>> note that I copy the library file to a new location, because the 
>> compilation destination path of boost is very strange.
>>
>> The include is added via
>>
>> INCLUDEPATH +=  ../boost_1_40_0
>>
>> or the full path. However during compilation the boost library 
>> headers are not found.
>
> you have to put in the INCLUDEPATH (which I usually write as INCPATH, 
> are you sure it's the same?) the path where the boost subdirectory is.
>
> For instance, if regex.hpp is in
>
> /my/path/boost_1_40_0/include/boost
>
> then you need to specify as include path
>
> /my/path/boost_1_40_0/include/
>
> since boost header files are included as follows
>
> #include <boost/regex.hpp>
>
> As for the compilation and installation of boost you can still refer 
> to that blog post since those flags are for bootstrap and bjam anyway.
>
I understand the path-thing. In my case the file regex.hpp is in
H:\matthias\Documents\Dev\CPP\SVN\library\source\boost_1_40_0\boost

which is why have set up
INCLUDEPATH += 
H:/matthias/Documents/Dev/CPP/SVN/library/source/boost_1_40_0/

but that does not work. The error in qtcreator is:

H:/matthias/Documents/Dev/CPP/SVN/library/source/source-highlight-3.1.2/lib/srchilite/substfun.h:13: 
boost/regex.hpp: No such file or directory


The compilation output however does not include this path, which I do 
not understand:
g++ -c -g -frtti -fexceptions -mthreads -Wall 
-DABSOLUTEDATADIR=\"/usr/local/share/source-highlight/\" 
-DVERSION=\"3.1.2\" -DLIBRARY_VERSION=\"3.0.0\" 
-DPACKAGE=\"source-highlight\" 
-DRELATIVEDATADIR=\"../share/source-highlight\" -DQT_DLL -DQT_GUI_LIB 
-DQT_CORE_LIB -DQT_THREAD_SUPPORT 
-I'c:/Programme/Qt/SDK/2009.04/qt/include/QtCore' 
-I'c:/Programme/Qt/SDK/2009.04/qt/include/QtGui' 
-I'c:/Programme/Qt/SDK/2009.04/qt/include' 
-I'c:/Programme/Qt/SDK/2009.04/qt/include/ActiveQt' -I'debug' 
-I'c:/Programme/Qt/SDK/2009.04/qt/mkspecs/win32-g++' -o debug/substfun.o 
substfun.cpp

Matthias