[CMake] cmake needs 2 runs to find boost

Peter Steinbach steinbach at scionics.de
Thu Nov 5 08:26:25 EST 2015


Hi to all,

ok, I tried the attached minimal CMakeLists.txt again and found out that it 
fails in the way I described only with the "MSYS Makefiles" generator. If I 
use the same CMakeLists.txt without a custom generator (so MSVS is the default 
IIRC), the libraries are found alright! 

Any ideas?
Best,
Peter

On Thursday, November 05, 2015 01:41:33 PM Peter Steinbach wrote:
> Hi Benedikt,
> 
> interesting thought, however I wonder why cmake is then capable of deducing
> the right boost version and include path. Just inside the first error
> message, I see:
> 
> (x86)/CMake/share/cmake-3.2/Modules/FindBoost.cmake:1182 (message):
> > >    Unable to find the requested Boost libraries.
> > >    
> > >    Boost version: 1.57.0
> > >    
> > >    Boost include path: C:/msys64/mingw64/include
> > >    
> > >    Could not find the following static Boost libraries:
> > >            boost_filesystem
> > >            boost_system
> 
> strange, isn't it?
> Peter
> 
> On Thursday, November 05, 2015 11:41:10 AM Benedikt Hegner wrote:
> > Hi Peter,
> > 
> > as I don't use windows at all, this is just a very wild guess...
> > 
> > Could it be that in the second run you actually don't use
> > 
> >    /CMake/share/cmake-3.2/Modules/FindBoost.cmake
> > 
> > but boost-config.cmake, which it now finds in the cached environment of
> > the first run?
> > 
> > This assumes of course that you built boost w/ CMake and not bjam...
> > 
> > Cheers,
> > 
> >    Benedikt
> > 
> > On 03.11.2015 14:10, Peter Steinbach wrote:
> > > Hi to all,
> > > 
> > > I tested this with cmake 3.2.2 and 3.3.2 and still get the same problem.
> > > I'd like to use boost with gcc on windows 7 64bit. I installed boost and
> > > gcc with msys2 as I cannot use MSVC for the actual project I am looking
> > > into for this.
> > > 
> > > the funny thing, if I use the attached CMakeLists.txt on the machine and
> > > call: ```
> > > $ cmake -G "MSYS Makefiles" -DBOOST_ROOT=C:/msys64/mingw64 -
> > > DBOOST_LIBRARYDIR==C:/msys64/mingw64/lib ..
> > > -- The CXX compiler identification is GNU 4.9.2
> > > -- Check for working CXX compiler: C:/msys64/usr/bin/g++.exe
> > > -- Check for working CXX compiler: C:/msys64/usr/bin/g++.exe -- works
> > > -- Detecting CXX compiler ABI info
> > > -- Detecting CXX compiler ABI info - done
> > > -- Detecting CXX compile features
> > > -- Detecting CXX compile features - done
> > > setting win specific stuff
> > > CMake Error at C:/Program Files
> > > 
> > > (x86)/CMake/share/cmake-3.2/Modules/FindBoost.cmake:1182 (message):
> > >    Unable to find the requested Boost libraries.
> > >    
> > >    Boost version: 1.57.0
> > >    
> > >    Boost include path: C:/msys64/mingw64/include
> > >    
> > >    Could not find the following static Boost libraries:
> > >            boost_filesystem
> > >            boost_system
> > >    
> > >    No Boost libraries were found.  You may need to set BOOST_LIBRARYDIR
> > >    to
> > >    the
> > >    directory containing Boost libraries or BOOST_ROOT to the location of
> > >    Boost.
> > > 
> > > Call Stack (most recent call first):
> > >    CMakeLists.txt:17 (FIND_PACKAGE)
> > > 
> > > CMake Error at CMakeLists.txt:24 (MESSAGE):
> > >    Boost not found (C:/msys64/mingw64)
> > > 
> > > -- Configuring incomplete, errors occurred!
> > > See also
> > > "C:/msys64/home/steinbac/development/cmake_sandbox/find_boost/build/CMak
> > > eF
> > > iles/CMakeOutput.log". $ cmake -G "MSYS Makefiles"
> > > -DBOOST_ROOT=C:/msys64/mingw64 -
> > > DBOOST_LIBRARYDIR==C:/msys64/mingw64/lib ..
> > > setting win specific stuff
> > > Boost 1.57 found __
> > > -- Configuring done
> > > -- Generating done
> > > -- Build files have been written to:
> > > C:/msys64/home/steinbac/development/cmake_sandbox/find_boost/build
> > > ```
> > > 
> > > I'd like to link statically to multithreaded libboost_*-mt.a from my
> > > app.
> > > But it proofes really hard to find Boost in the first place.
> > > Any ideas?
> > > 
> > > Peter

-- 
Peter Steinbach, Dr. rer. nat.
HPC Developer

Scionics Computer Innovation GmbH
Löscherstr. 16
01309 Dresden
fon: +49 351 210 2882
fax: +49 351 210 1689
http://www.scionics.de

Sitz der Gesellschaft:  Dresden (Main office)
Amtsgericht - Registergericht:  Dresden HRB 20337 (Commercial Registry)
Ust-IdNr.:  DE813263791 (VAT ID Number)
Geschäftsführer:  John Duperon, Jeff Oegema (Managing Directors)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CMakeLists.txt
Type: text/x-cmake
Size: 696 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake/attachments/20151105/8dbf46ce/attachment.bin>


More information about the CMake mailing list