[CMake] cmake: could NOT find Boost

Michael Hertling mhertling at online.de
Wed May 5 11:47:59 EDT 2010


On 05/05/2010 04:00 PM, Philip Lowman wrote:
> Usually you can get away with deleting just the cached variables that a find
> module create (i.e. ZLIB_LIBRARY, etc.).  Boost is one of the few modules
> where this doesn't always work because it creates internal cached variables
> that don't show up in the cache editor.

As an alternative to ccmake et al., one can issue, even with Boost, e.g.:

cmake '-UBoost_*' -DCMAKE_PREFIX_PATH=<path/to/boost> .

This wipes out the package's internal cache variables, too,
and makes FIND_PACKAGE() to actually restart the search.

Regards,

Michael

> 
> On Wed, May 5, 2010 at 9:57 AM, Michael Hertling <mhertling at online.de>wrote:
> 
>> On 05/04/2010 07:19 PM, Mike Ladwig wrote:
>>> The "clean build tree" seems to have been the problem.  Looks as if I
>> needed
>>> to start clean every time I tried a new configuration approach.  Much
>>> thanks!
>>
>> Typically, if FIND_PACKAGE() succeeds in locating a package the results
>> are cached, and if you reconfigure later FIND_PACKAGE() usually doesn't
>> search again, but reuses the previously found results from the cache.
>> Therefore, you must ensure that FIND_PACKAGE() is lead to the desired
>> package right at the first time. If this package is missed you should
>> actually restart the configuration from within a clean directory, i.e.
>> without a cache. In general, if you have installed multiple versions
>> of the same package be particularly careful w.r.t. which of them is
>> going to be found by FIND_PACKAGE().
>>
>> Regards,
>>
>> Michael
>>
>>>
>>> On Tue, May 4, 2010 at 1:01 PM, S Roderick <kiwi.net at mac.com> wrote:
>>>
>>>> On May 4, 2010, at 12:41 , Mike Ladwig wrote:
>>>>
>>>>> Hi.
>>>>>
>>>>> I'm having a problem compiling scantailor on CentOS 5.4.  The version
>> of
>>>> cmake that comes with CentOS was too old, so I downloaded the current
>> cmake
>>>> binary, which seems to be working well.
>>>>>
>>>>> The problem is that the CentOS version of boost is also out-of-date, so
>> I
>>>> needed to download and build that, which I did successfully.  I
>> installed
>>>> the new boost (1.42) in /usr/local and have been unable to get cmake to
>>>> recognize it.
>>>>>
>>>>> I have tried -DBOOST_ROOT=/usr/local/ -DBOOSTROOT=/usr/local/
>>>> -DBOOST_INCLUDEDIR=/usr/local/include/
>> -DBOOST_LIBRARYDIR=/usr/local/lib/
>>>> -DBoost_ADDITIONALVERSIONS="1.42.0" and many variations on these.
>>>>>
>>>>> Am I missing something, or is cmake just unable to find boost anywhere
>>>> other than default locations?
>>>>
>>>>
>>>> Have you tried (in a clean build tree)
>>>>
>>>> export CMAKE_PREFIX_PATH=/usr/local
>>>> cmake ...
>>>>
>>>> The above works with MacPorts installed boost v1.42 in /opt/local for
>> Mac
>>>> OS X.
>>>> Stephen


More information about the CMake mailing list