0
votes

This appears to be the same issues as this question:

boost_log example with sinks fails to compile

However, adding -lpthread appears to have no effect. Here is the full command line I use to compile:

/usr/bin/c++ -g
topology/test/CMakeFiles/topologyTest.dir/main.cpp.o topology/test/CMakeFiles/topologyTest.dir/configTests.cpp.o -o topology/test/topologyTest -rdynamic -lboost_log -lboost_log_setup -lboost_thread -lboost_program_options -lboost_serialization -lboost_unit_test_framework -lboost_filesystem -lboost_system -lboost_date_time -lboost_regex -lboost_chrono -lboost_atomic -lpthread topology/lib/libtopologyLib.a topology/testLib/libtopologyTestLib.a utility/testLib/libutilityTestLib.a topology/lib/libtopologyLib.a -lpthread -lboost_log -lboost_log_setup -lboost_thread -lboost_program_options -lboost_serialization -lboost_unit_test_framework -lboost_filesystem -lboost_system -lboost_date_time -lboost_regex -lboost_chrono -lboost_atomic -lpthread expression/lib/libexpressionLib.a utility/lib/libutilityLib.a

I tried using a custom built 1.60 version of boost as well;

/usr/bin/g++ -g
topology/test/CMakeFiles/topologyTest.dir/activatorTests.cpp.o topology/test/CMakeFiles/topologyTest.dir/main.cpp.o topology/test/CMakeFiles/topologyTest.dir/neuronTests.cpp.o topology/test/CMakeFiles/topologyTest.dir/speciesTests.cpp.o topology/test/CMakeFiles/topologyTest.dir/synapseTests.cpp.o -o topology/test/topologyTest -rdynamic -lpthread /usr/local/lib/libboost_log.so /usr/local/lib/libboost_log_setup.so /usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_thread.so /usr/local/lib/libboost_unit_test_framework.so /usr/local/lib/libboost_date_time.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_regex.so /usr/local/lib/libboost_chrono.so /usr/local/lib/libboost_atomic.so -lpthread topology/lib/libtopologyLib.a topology/testLib/libtopologyTestLib.a utility/testLib/libutilityTestLib.a topology/lib/libtopologyLib.a -lpthread /usr/local/lib/libboost_log.so /usr/local/lib/libboost_log_setup.so /usr/local/lib/libboost_serialization.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_thread.so /usr/local/lib/libboost_unit_test_framework.so /usr/local/lib/libboost_date_time.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_regex.so /usr/local/lib/libboost_chrono.so /usr/local/lib/libboost_atomic.so -lpthread expression/lib/libexpressionLib.a utility/lib/libutilityLib.a -Wl,-rpath,/usr/local/lib

In both cases, the error I get is:

/usr/bin/ld: /usr/local/lib/libboost_log.so: undefined reference to symbol '_ZN5boost6detail12get_tss_dataEPKv' /usr/local/lib/libboost_thread.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status

I tried appending -DBOOST_LOG_DYN_LINK to the command without effect.

I am using ubuntu 16.04.

I'm at a bit of a loss. Any ideas what I'm missing / how to diagnose this?

1
The solution in the linked question was to add -lboost_thread. Does that change anything?Sean Cline
@SeanCline boost_thread is already being linked against. I tried with ubuntu's native 1.58 boost versions as well, with the same error. I've updated the question to reflect this.quant

1 Answers

2
votes

Try to link with -lboost_thread,

and change -DBOOST_LOG_DYN_LINK to -DBOOST_ALL_DYN_LINK.