Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost Filesystem fails with FreeBSD 10, clang, and boost
From: Ricky Huang (rhuang.work_at_[hidden])
Date: 2014-06-20 14:01:54


On Jun 20, 2014, at 12:50 AM, Lars Viklund <zao_at_[hidden]> wrote:

> On Thu, Jun 19, 2014 at 05:55:10PM -0700, Ricky Huang wrote:
>> Hello all,
>>
>> I am currently migrating to a FreeBSD 10 system which comes default with clang language. I was able to compile Boost just fine. But when I include filesysstem.hpp to it, I get the following error message:
>>
>>> Linking CXX executable boost_clang_test
>>> /usr/bin/ld: : invalid DSO for symbol `_ZN5boost6system15system_categoryEv' definition
>>> /usr/local/lib/libboost_system.so.1.55.0: could not read symbols: Bad value
>>> CC: error: linker command failed with exit code 1 (use -v to see invocation)
>>> *** Error code 1
>>>
>>> Stop.
>
> Did you install Boost from ports or did you build it yourself?

I installed it from the ports.

>
> Note that Boost.System is a dependency of Boost.Filesystem, so you
> probably need to mention it in the COMPONENTS list, as AFIAK FindBoost
> doesn't grok library dependencies.
>
> Your error is due to not explicitly linking Boost.System, causing the
> linker to do some best-effort finding of the symbols based on what
> boost_filesystem pulls in, but not quite succeeding.
>
> I reproduced your problem on my 10.0 machine and resolved it by adding
> 'system' to the list of the components.
>

That was it - adding system to CMake fine_package() fixed the problem. I guess the entire build system was different, FreeBSD 9, gcc, boost 1.48, on my older system.

Thank you for the help Lars.

>> I am using cmake as my build system, could it be possible that I need to adjust my cmake variables? I am not sure if I've came to correct forum or should this be on FreeBSD, clang, CMake forum(s)? Please let me know if I am at the wrong place…
>>
>>
>> The minimum amount of code to induce the problem are the following 2 files:
>>
>> CMakeLists.txt:
>>
>> cmake_minimum_required(VERSION 2.8)
>>
>> # Find and include Boost libraries
>> find_package(Boost 1.55 COMPONENTS filesystem REQUIRED)
>> include_directories(${Boost_INCLUDE_DIR})
>> set(LIBS ${LIBS} ${Boost_LIBRARIES})
>>
>> set(BOOST_CLANG_TEST_SOURCES ${SOURCES} main.cpp)
>>
>> add_executable(boost_clang_test ${BOOST_CLANG_TEST_SOURCES})
>> target_link_libraries(boost_clang_test ${LIBS})
>>
>>
>> main.cpp:
>>
>> #include <stdio.h>
>> #include <iostream>
>> #include <sstream>
>> #include <string>
>> #include <boost/filesystem.hpp>
>>
>> using namespace std;
>> using namespace boost::filesystem;
>>
>> const char *progname;
>>
>> int main(int argc, char **argv){
>> return 0;
>> }
>>
>>
>> Thanks in advance.
>
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
> --
> Lars Viklund | zao_at_[hidden]
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net