← Back to team overview

dolfin team mailing list archive

Re: libboost_program_options is not included during linking process

 

On Thu, Nov 11, 2010 at 6:47 PM, Andre Massing <massing@xxxxxxxxx> wrote:
> Den 11.11.10 18.34, skrev Andre Massing:
>>
>> Den 11.11.10 17.23, skrev Johannes Ring:
>>>
>>> On Thu, Nov 11, 2010 at 3:35 PM, Andre Massing<massing@xxxxxxxxx>  wrote:
>>>>
>>>> Den 11.11.10 15.23, skrev Johannes Ring:
>>>>>
>>>>> On Thu, Nov 11, 2010 at 3:14 PM, Andre Massing<massing@xxxxxxxxx>
>>>>>  wrote:
>>>>>>
>>>>>> Den 11.11.10 15.04, skrev Johannes Ring:
>>>>>>>
>>>>>>> On Thu, Nov 11, 2010 at 2:58 PM, Andre Massing<massing@xxxxxxxxx>
>>>>>>>  wrote:
>>>>>>>>
>>>>>>>> Hi!
>>>>>>>>
>>>>>>>> I just encountered another strange error during compilation of the
>>>>>>>> latest
>>>>>>>> dolfin development
>>>>>>>> version on a Mac OS X platform. I got the error
>>>>>>>>
>>>>>>>> Linking CXX shared library libdolfin.dylib
>>>>>>>> [..]
>>>>>>>> Undefined symbols:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  "boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t,
>>>>>>>> std::basic_string<char, std::char_traits<char>, std::allocator<char>
>>>>>>>> >
>>>>>>>> const&, std::basic_string<char, std::char_traits<char>,
>>>>>>>> std::allocator<char>
>>>>>>>>>
>>>>>>>>> const&)", referenced from:
>>>>>>>>
>>>>>>>> Switching VERBOSE=1 reveals that libboost_program_options was not
>>>>>>>> included
>>>>>>>> in the list of libs to link with.
>>>>>>>> Any clue how to fix that?
>>>>>>>
>>>>>>> I had a similar problem a few days ago. I think it was after I did a
>>>>>>> clean build of DOLFIN that the problem went away. Have you tried
>>>>>>> that?
>>>>>>>
>>>>>>> Johannes
>>>>>>
>>>>>> Actually I started with a clean build in the first place :)
>>>>>
>>>>> Okay, could you attach your CMakeCache.txt file?
>>>>>
>>>> Attached.
>>>
>>> Thanks. It looks okay so I don't really know. You could try to specify
>>> the Boost libraries manually, like this:
>>>
>>>
>>> -DBoost_PROGRAM_OPTIONS_LIBRARY:FILEPATH=/opt/local/lib/libboost_program_options-mt.dylib
>>>
>>> Are you sure you have the latests DOLFIN? And does it work if you
>>> revert back to revision 5236?
>>
>> I have tried both, and neither one helped. I am really stuck now, since I
>> can not compile any of my dolfin libs :(
>> I don't get it. At least find_package(BOOST) command in CMakeList find all
>> the libs, the Boost_LIBRARIES contains also
>> libboost_program_options, but somehow it goes lost on the way, e.g. in all
>> the link.txt and build.make the entry is missing
>> (it exists in a older installation). No clue what is going on... Has
>> anybody else from the CMake experts an idea about what is going
>> on??
>>
> I found something which is somehow related to the error. I had a recent
> update which changed cmake from version cmake @2.8.2_2
> to cmake  @2.8.3_0. If I use the newer version, the cmake generated link.txt
> and build.make files *does not* contain libboost_program_options,
> if I switch back to 2.8.2_2 they do. Strange, no idea whether this is a bug
> in cmake, macports.. and how to resolve it..

Ah! Now I remember I tried CMake 2.8.3 on OS X earlier this week but
went later back to 2.8.2. That's why the error I had (similar to
yours) "magically" disappeared. I tried 2.8.3 on Ubuntu now and
libboost_program_options was missing from the link.txt and build.txt
files as in your case. The diff between FindBoost.cmake in CMake 2.8.2
and in 2.8.3 is rather large so it is quite possible that the bug is
in CMake. I will look closer at this tomorrow.

Johannes



Follow ups

References