Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] Boost is not found when compiling my own code

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] Boost is not found when compiling my own code


Chronological Thread 
  • From: Michael Bieri <>
  • To:
  • Subject: Re: [cgal-discuss] Boost is not found when compiling my own code
  • Date: Tue, 8 Aug 2017 22:10:15 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-phdr: 9a23:g//HmhC6mHyGSDNN8uYOUyQJP3N1i/DPJgcQr6AfoPdwSPryoMbcNUDSrc9gkEXOFd2CrakV26yO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fdbghMhzexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Xymp4aV2Rx/ykCoINTA5/mHZhMJzkaxVvg6uqgdlzILIeoyYLuZycr/fcN4cWGFPXtxRVytEAo6kaIUPDvYOPeZCoIbjo1sFsAazBQiyC+P1yz9Dm3j73ag70+s6EAHJwhYgH9MVvXTbqdX6LqYSUeSvwKbUyjXDaupb1DHg44bLahAsue+AUa50fMbLykQiFxnJgkuOpYD5JT+Zy+cAv3ad4uF9T+ygkXQnpBt0ojW3xscjlI3JhoUNx1DB7yp5wYI1KcShSE54fdKoCZVQuzyZOodoWM8iTGZouCE1yr0Cp5G3ZjQFyJMixxLHavyHdZaH4g77WeqPPTt1gGhpdbG/ihqo70Ss1PHwWtOp3FtJsCZJitzMuWoM1xzX5MiHUPx9/kK51DaK1gDc8eBELl4ularaMJMhzbswmYASsUTHBCP5hEL2jKqOekU+5ueo8/jnYqnhppKEK4B0hRvxMqA3lsOiAOQ4KRQBX3WA+eSnz7Dj5k34QLBSjvIsiKXZsZbaJd4apqGjGQNV3JwjuF6DCGKt390c2HUGN1lYYwmvjo7zOliILuqrI+24hgGJkTxrzv3CdpfgD4/MZizGkb3gcKx8w0FZwQs3i9tY4sQHWfk6PPvvVxqp55TjBRgjPlnszg==

Ok, I tried to do this, but I get the following result when running it with --trace:

/my/project/CMakeLists.txt(25):  set(Boost_NO_SYSTEM_PATHS TRUE )
/my/project/CMakeLists.txt(26):  set(BOOST_ROOT /my/boost )
/my/project/CMakeLists.txt(27):  find_package(Boost REQUIRED )
/usr/share/cmake/Modules/FindBoost.cmake(163):  if(NOT Boost_NO_BOOST_CMAKE )
/usr/share/cmake/Modules/FindBoost.cmake(166):  if($ENV{Boost_DIR} STREQUAL  )
/usr/share/cmake/Modules/FindBoost.cmake(167):  if(NOT $ENV{BOOST_ROOT} STREQUAL  )
/usr/share/cmake/Modules/FindBoost.cmake(168):  set(ENV{Boost_DIR} $ENV{BOOST_ROOT} )
/usr/share/cmake/Modules/FindBoost.cmake(177):  find_package(Boost QUIET NO_MODULE )
/usr/lib64/boost/BoostConfigVersion.cmake(12):  if(${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}.${PACKAGE_FIND_VERSION_PATCH} STREQUAL 1.41.0 )
/usr/lib64/boost/BoostConfig.cmake(20):  set(Boost_VERSION 1.41.0 )
/usr/lib64/boost/BoostConfig.cmake(21):  set(Boost_INCLUDE_DIRS /usr/include )
/usr/lib64/boost/BoostConfig.cmake(22):  set(Boost_INCLUDE_DIR /usr/include CACHE FILEPATH Boost include directory )
/usr/lib64/boost/BoostConfig.cmake(24):  set(Boost_LIBRARY_DIRS /usr/lib64 )

This will then again lead to the same error as before.

It seems that cmake absolutely wants to go into /usr/share/cmake/Modules/FindBoost.cmake and then /usr/lib64/boost/BoostConfig.cmake, no matter wheter I set Boost_NO_SYSTEM_PATHS TRUE. 

Best regards,
Michael



On Tue, Aug 8, 2017 at 10:00 PM, Chris Marsh <> wrote:
In your project cmake.

And I would not manually set these variables
Boost_DIR /usr/lib64/boost                                                
Boost_INCLUDE_DIR /usr/include

I would let the find_pacakge call do that for you.


On 8 August 2017 at 13:56, Michael Bieri <> wrote:
Just in the cmake file of my project, or in the cmake file for building CGAL?

On Tue, Aug 8, 2017 at 9:48 PM, Chris Marsh <> wrote:
You put them before the find_package(Boost REQUIRED) call in your cmake file. You will not need to recompile boost.

For example:

set(Boost_NO_SYSTEM_PATHS TRUE)
set(BOOST_ROOT "/my/boost/boost_1_54_0")
find_package(Boost REQUIRED)
message(STATUS "Found boost incl: ${Boost_INCLUDE_DIR}")
message(STATUS "Boost libs to link: ${Boost_LIBRARIES}")
message(STATUS "Found boost lib: ${Boost_LIBRARY_DIRS}")

should print your custom boost library path


On 8 August 2017 at 13:37, Michael Bieri <> wrote:
Hi Chris

Thanks for your answer. Where exactly should I put those lines, and do I need to recompile CGAL afterwards?

Best regards,
Michael

On Tue, Aug 8, 2017 at 9:29 PM, Chris Marsh <> wrote:
When compiling against a custom boost with cmake, you can use this in your cmake file to specify the boost directory

set(Boost_NO_SYSTEM_PATHS TRUE)
set(BOOST_ROOT "/my/boost/boost_1_54_0")

the FindBoost.cmake file will then pickup your custom directory 

On 8 August 2017 at 13:14, Michael Bieri <> wrote:
Hello

I'm currently installing CGAL on different platforms. Normally, it works just fine. But I have one computer where Boost is not installed into the system, but just compiled in a directory. This Boost works properly in combination with other things I'm building, just not with CGAL.

I can compile CGAL using the following Boost-related settings, displayed with ccmake:

 Boost_DEBUG OFF                                                            
 Boost_INCLUDE_DIR /my/boost/boost_1_54_0        
 Boost_LIBRARY_DIR /my/boost/boost_1_54_0/stage/lib
 Boost_SYSTEM_LIBRARY_DEBUG /my/boost/boost_1_54_0/stage/lib
 Boost_SYSTEM_LIBRARY_RELEASE /my/boost/boost_1_54_0/stage/lib
 Boost_THREAD_LIBRARY_DEBUG /my/boost/boost_1_54_0/stage/lib
 Boost_THREAD_LIBRARY_RELEASE /my/boost/boost_1_54_0/stage/lib
 CGAL_Boost_USE_STATIC_LIBS   OFF


Now, I'd like to compile one of my examples. I get the following error: 

*******************************************************

CMake Error at /usr/lib64/boost/Boost.cmake:536 (message):
  The imported target "boost_date_time-static" references the file

     "/usr/lib64/lib64/libboost_date_time.a"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/usr/lib64/boost/Boost.cmake"

  but not all the files it references.

*******************************************************

The error itself is not a surprise, because it's a very old Boost there.

Boost-related settings for cmake in my project folder are:

Boost_DEBUG OFF                                                            
Boost_DIR /usr/lib64/boost                                                
Boost_INCLUDE_DIR /usr/include

Whe I change the variables to my own Boost in ccmake, it will also throw the above error and not save the changes.

So I really, really wonder: How do I set Boost properly to compile my own code? (I also tried with environment variables as given in the installation manual, Section 15.7.)

Best regards,
Michael










Archive powered by MHonArc 2.6.18.

Top of Page