Picongpu: Ubuntu 16.04 & Boost 1.58: Boost CT Linker Error

Created on 27 Apr 2017  路  15Comments  路  Source: ComputationalRadiationPhysics/picongpu

I met following error during installation.

collect2: error: ld returned 1 exit status
build_picongpu/CMakeFiles/picongpu.dir/build.make:2775: recipe for target 'build_picongpu/picongpu' failed
make[2]: *** [build_picongpu/picongpu] Error 1
CMakeFiles/Makefile2:90: recipe for target 'build_picongpu/CMakeFiles/picongpu.dir/all' failed
make[1]: *** [build_picongpu/CMakeFiles/picongpu.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Could you please help me solve this problem?

Thanks!

question

All 15 comments

Hi @jingli9111,

Thank you for your report! :sparkles:

In order to reproduce the issue can you please provide the following additional information about your system:

  • Which exact PIConGPU version did you use? Did you apply modifications?
  • compiler (gnu, intel, ...) and version (e.g., g++ --version or $CXX --version)
  • cmake version (cmake --version)
  • operating system / system name (e.g., Hypnos (HZDR), Ubuntu 14.04)
  • Did you load modules? If yes, which software and software-versions did you load?
  • Did you manually install further dependencies of PIConGPU? If yes, which software and software-versions did you load?
  • short example scripts and example data to reproduce the issue

Also, did you already read our install and usage manual? :)
https://picongpu.readthedocs.io

all latest versions, just follow your installation manual.
I didn't do any change.

Still:

CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `picongpu::SimulationStarter<picongpu::InitialiserController, picongpu::PluginController, picongpu::MySimulation>::parseConfigs(int, char**)':
/home/ljing/picongpu/src/picongpu/src/picongpu/include/simulationControl/SimulationStarter.hpp:99: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
/home/ljing/picongpu/src/picongpu/src/picongpu/include/simulationControl/SimulationStarter.hpp:103: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
/home/ljing/picongpu/src/picongpu/src/picongpu/include/simulationControl/SimulationStarter.hpp:107: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `bool boost::regex_search<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/regex_search.hpp:56: undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/perl_matcher.hpp:365: undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISscEE[_ZTVN5boost15program_options11typed_valueISscEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueIbcEE[_ZTVN5boost15program_options11typed_valueIbcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueItcEE[_ZTVN5boost15program_options11typed_valueItcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorIfSaIfEEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorIfSaIfEEcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorIjSaIjEEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorIjSaIjEEcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueIfcEE[_ZTVN5boost15program_options11typed_valueIfcEE]+0x38): more undefined references to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const' follow
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::string, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::string, char>::xparse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&) const':
/usr/include/boost/program_options/detail/value_semantic.hpp:167: undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, std::string*, int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<bool, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<bool, char>::xparse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&) const':
/usr/include/boost/program_options/detail/value_semantic.hpp:167: undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool*, int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<unsigned short, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::vector<unsigned int, std::allocator<unsigned int> >, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<int, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<unsigned int, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<unsigned short, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, unsigned short*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<unsigned int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<unsigned int, std::allocator<unsigned int> >*, int)':
/usr/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<unsigned int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, unsigned int*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE]+0x38): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorIiSaIiEEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorIiSaIiEEcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::vector<int, std::allocator<int> >, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::vector<float, std::allocator<float> >, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<float, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<int, std::allocator<int> >*, int)':
/usr/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<float, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<float, std::allocator<float> >*, int)':
/usr/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<float, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, float*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
collect2: error: ld returned 1 exit status
build_picongpu/CMakeFiles/picongpu.dir/build.make:212: recipe for target 'build_picongpu/picongpu' failed
make[2]: *** [build_picongpu/picongpu] Error 1
CMakeFiles/Makefile2:90: recipe for target 'build_picongpu/CMakeFiles/picongpu.dir/all' failed
make[1]: *** [build_picongpu/CMakeFiles/picongpu.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Should be some path setting problem.

I set

export CUDA_ROOT=/usr/local/cuda-8.0/
export MPI_ROOT=/usr/bin/mpic++

I guess all other paths are not necessary?

looks like a linker error for boost, that means boost has not build the required compile time libs and/or LD_LIBRARY_PATH is not set.

I guess all other paths are not necessary?

The two exports you note are definitely not the only paths you need to set, please follow our detailed instructions on how to install all dependencies.

Can you tell me how to link all these dependencies?
I used apt-get to install everything required.
This document only says:

export MPI_ROOT=<MPI_INSTALL>
export BOOST_ROOT=$HOME/lib/boost

However, if I use whereis to look for this package, I got something like mpi: /usr/include/mpi and boost: /usr/include/boost. It must be the wrong path, right?
I still get error when make

This is the configure result:

$PICSRC/configure $PICHOME/paramSets/case001
cmake command: cmake -DCUDA_ARCH=sm_20 -DCMAKE_INSTALL_PREFIX=/home/ljing/PIConGPU/paramSets/case001 -DPIC_EXTENSION_PATH=/home/ljing/PIConGPU/paramSets/case001   /home/ljing/PIConGPU/src/picongpu
-- The C compiler identification is GNU 4.9.3
-- The CXX compiler identification is GNU 4.9.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found CUDA: /usr/local/cuda (found suitable version "8.0", minimum required is "5.5") 
-- Compiling as C++11...
-- Debug version
-- Found MPI_C: /usr/lib/openmpi/lib/libmpi.so  
-- Found MPI_CXX: /usr/lib/openmpi/lib/libmpi_cxx.so;/usr/lib/openmpi/lib/libmpi.so  
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   program_options
--   regex
--   filesystem
--   system
--   thread
--   math_tr1
--   chrono
--   date_time
--   atomic
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp  
-- Found CUDA: /usr/local/cuda (found suitable version "8.0", minimum required is "5.0") 
-- Boost version: 1.58.0
-- Using mallocMC from thirdParty/ directory
-- Boost version: 1.58.0
-- Found mallocMC: /home/ljing/PIConGPU/src/picongpu/thirdParty/mallocMC/src (found suitable version "2.2.0", minimum required is "2.2.0")  
-- Found CUDA: /usr/local/cuda (found version "8.0") 
-- Found NVML: /usr/lib/x86_64-linux-gnu/libnvidia-ml.so  
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   program_options
-- Found 'adios_config': /usr/bin/adios_config
-- The directory provided by 'adios_config -d' does not exist: 
-- Could NOT find ADIOS (missing:  ADIOS_LIBRARIES ADIOS_INCLUDE_DIRS) (Required is at least version "1.10.0")
-- Can NOT find libSplash for HDF5 output - include its root in CMAKE_PREFIX_PATH
-- Could NOT find Splash (missing:  Splash_LIBRARIES Splash_INCLUDE_DIRS) (Required is at least version "1.6.0")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found suitable version "1.2.54", minimum required is "1.2.9") 
-- Can NOT find PNGwriter - set PNGWRITER_ROOT
-- Could NOT find PNGwriter (missing:  PNGwriter_LIBRARIES PNGwriter_INCLUDE_DIRS) (Required is at least version "0.5.6")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ljing/PIConGPU/build

I installed all libboost-*-dev.
I guess path settings are correct based on this config result.
However, I still got:

CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<float, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, float*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
collect2: error: ld returned 1 exit status
build_picongpu/CMakeFiles/picongpu.dir/build.make:212: recipe for target 'build_picongpu/picongpu' failed
make[2]: *** [build_picongpu/picongpu] Error 1
CMakeFiles/Makefile2:90: recipe for target 'build_picongpu/CMakeFiles/picongpu.dir/all' failed
make[1]: *** [build_picongpu/CMakeFiles/picongpu.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Dear @jingli9111 ,

all latest versions, just follow your installation manual.

that did not answer my explicit questions and I can't guess the software, os and hardware versions you are using in order to help you. Please take the time to answer questions properly, otherwise we are all wasting our time here.

For now, I am guessing you are using some kind of ubuntu on which you have root access, since you are saying something about apt-get install. In that case, software installed via the package manager is installed directly in system paths and you don't need to set hints via export ..._ROOT nor extend the LD_LIBRARY_PATH. In case you installed both mpi and boost via apt-get, don't set those two hints (I guess $HOME/lib/boost does not even exist on your system? Did you read the manual I linked above top to bottom, including the see also links on top that explained these variables?)

When you fixed your environment as described, start a fresh shell, clean your build directory and compile PIConGPU again.

Please also try to run explicitly again:

sudo apt-get install libboost-program-options-dev
sudo apt-get install libboost-all-dev
locate libboost_program_options.so

and post the output. There are probably your two versions of boost lurking somewhere, don't worry we will get you up to speed.

compiler (gnu, intel, ...) and version (e.g., g++ --version or $CXX --version)

g++ 4.9.3
cmake version (cmake --version)
3.5.1
operating system / system name (e.g., Hypnos (HZDR), Ubuntu 14.04)
Ubuntu16.04
Did you load modules? If yes, which software and software-versions did you load?
no
Did you manually install further dependencies of PIConGPU? If yes, which software and software-versions did you load?
no

I did read the manual.

$HOME/lib/boost truly does not exist.

From config output, I think the system has already find those packages.

I cleaned up build folder and did everything again. Still same error:

/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
collect2: error: ld returned 1 exit status
build_picongpu/CMakeFiles/picongpu.dir/build.make:2775: recipe for target 'build_picongpu/picongpu' failed
make[2]: *** [build_picongpu/picongpu] Error 1
CMakeFiles/Makefile2:90: recipe for target 'build_picongpu/CMakeFiles/picongpu.dir/all' failed
make[1]: *** [build_picongpu/CMakeFiles/picongpu.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Here's the output:

$ sudo apt-get install libboost-program-options-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libboost-program-options-dev is already the newest version (1.58.0.1ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension

$ sudo apt-get install libboost-all-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libboost-all-dev is already the newest version (1.58.0.1ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension

$ locate libboost_program_options.so
/usr/lib/x86_64-linux-gnu/libboost_program_options.so
/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.58.0

thanks for the information!

What does

make VERBOSE=True

output?

Thank you so much for your help!

/usr/bin/cmake -H/home/ljing/PIConGPU/src/picongpu -B/home/ljing/PIConGPU/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/ljing/PIConGPU/build/CMakeFiles /home/ljing/PIConGPU/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/ljing/PIConGPU/build'
make -f build_picongpu/CMakeFiles/picongpu.dir/build.make build_picongpu/CMakeFiles/picongpu.dir/depend
make[2]: Entering directory '/home/ljing/PIConGPU/build'
cd /home/ljing/PIConGPU/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/ljing/PIConGPU/src/picongpu /home/ljing/PIConGPU/src/picongpu/src/picongpu /home/ljing/PIConGPU/build /home/ljing/PIConGPU/build/build_picongpu /home/ljing/PIConGPU/build/build_picongpu/CMakeFiles/picongpu.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/ljing/PIConGPU/build'
make -f build_picongpu/CMakeFiles/picongpu.dir/build.make build_picongpu/CMakeFiles/picongpu.dir/build
make[2]: Entering directory '/home/ljing/PIConGPU/build'
[  8%] Linking CXX executable picongpu
cd /home/ljing/PIConGPU/build/build_picongpu && /usr/bin/cmake -E cmake_link_script CMakeFiles/picongpu.dir/link.txt --verbose=True
/usr/bin/c++    -std=c++11 -fopenmp -Wall -Wno-unknown-pragmas -Wextra -Wno-unused-parameter -Wno-unused-local-typedefs -g   CMakeFiles/picongpu.dir/stringHelpers.cpp.o CMakeFiles/picongpu.dir/particlePatches.cpp.o CMakeFiles/picongpu.dir/patchReader.cpp.o CMakeFiles/picongpu.dir/ArgsParser.cpp.o CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o  -o picongpu -rdynamic /usr/local/cuda/lib64/libcudart_static.a -lpthread -ldl -lrt /usr/lib/openmpi/lib/libmpi.so /usr/lib/openmpi/lib/libmpi_cxx.so /usr/lib/openmpi/lib/libmpi.so -lpthread -lz -lboost_program_options -lboost_regex -lboost_filesystem -lboost_system -lboost_thread -lboost_math_tr1 -lboost_chrono -lboost_date_time -lboost_atomic -lpthread /usr/local/cuda/lib64/libcudart.so -lm -ldl -lrt /usr/lib/openmpi/lib/libmpi_cxx.so -lz -lboost_program_options -lboost_regex -lboost_filesystem -lboost_system -lboost_thread -lboost_math_tr1 -lboost_chrono -lboost_date_time -lboost_atomic -lpthread /usr/local/cuda/lib64/libcudart.so -lm -Wl,-rpath,/usr/lib/openmpi/lib:/usr/local/cuda/lib64: 
CMakeFiles/picongpu.dir/ArgsParser.cpp.o: In function `picongpu::ArgsParser::parse(int, char**)':
/home/ljing/PIConGPU/src/picongpu/src/picongpu/ArgsParser.cpp:73: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o: In function `boost::program_options::variables_map::operator[](std::string const&) const':
/usr/include/boost/program_options/variables_map.hpp:155: undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o: In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*)':
/usr/include/boost/program_options/detail/parsers.hpp:43: undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector<std::string, std::allocator<std::string> > const&)'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o: In function `boost::program_options::basic_command_line_parser<char>::extra_parser(boost::function1<std::pair<std::string, std::string>, std::string const&>)':
/usr/include/boost/program_options/detail/parsers.hpp:77: undefined reference to `boost::program_options::detail::cmdline::set_additional_parser(boost::function1<std::pair<std::string, std::string>, std::string const&>)'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o: In function `std::vector<std::string, std::allocator<std::string> > boost::program_options::to_internal<std::string>(std::vector<std::string, std::allocator<std::string> > const&)':
/usr/include/boost/program_options/detail/convert.hpp:79: undefined reference to `boost::program_options::to_internal(std::string const&)'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorISsSaISsEEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorISsSaISsEEcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o:(.rodata._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o:(.rodata._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o: In function `boost::program_options::typed_value<std::vector<std::string, std::allocator<std::string> >, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o: In function `void boost::program_options::validate<std::string, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::string, std::allocator<std::string> >*, int)':
/usr/include/boost/program_options/detail/value_semantic.hpp:146: undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, std::string*, int)'
/usr/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE]+0x38): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/ArgsParser.cpp.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::string const&, std::string const&, int)':
/usr/include/boost/program_options/errors.hpp:372: undefined reference to `boost::program_options::validation_error::get_template(boost::program_options::validation_error::kind_t)'
/usr/include/boost/program_options/errors.hpp:372: undefined reference to `boost::program_options::error_with_option_name::error_with_option_name(std::string const&, std::string const&, std::string const&, int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `PMacc::PluginConnector::registerHelp()':
/home/ljing/PIConGPU/src/picongpu/src/picongpu/../libPMacc/include/pluginSystem/PluginConnector.hpp:110: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `picongpu::SimulationStarter<picongpu::InitialiserController, picongpu::PluginController, picongpu::MySimulation>::parseConfigs(int, char**)':
/home/ljing/PIConGPU/src/picongpu/src/picongpu/include/simulationControl/SimulationStarter.hpp:99: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
/home/ljing/PIConGPU/src/picongpu/src/picongpu/include/simulationControl/SimulationStarter.hpp:103: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
/home/ljing/PIConGPU/src/picongpu/src/picongpu/include/simulationControl/SimulationStarter.hpp:107: undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `bool boost::regex_search<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/regex_search.hpp:56: undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(__gnu_cxx::__normal_iterator<char const*, std::string>, __gnu_cxx::__normal_iterator<char const*, std::string>, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<char const*, std::string>)':
/usr/include/boost/regex/v4/perl_matcher.hpp:365: undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISscEE[_ZTVN5boost15program_options11typed_valueISscEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueIbcEE[_ZTVN5boost15program_options11typed_valueIbcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueItcEE[_ZTVN5boost15program_options11typed_valueItcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorIfSaIfEEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorIfSaIfEEcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorIjSaIjEEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorIjSaIjEEcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueIfcEE[_ZTVN5boost15program_options11typed_valueIfcEE]+0x38): more undefined references to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const' follow
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::string, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::string, char>::xparse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&) const':
/usr/include/boost/program_options/detail/value_semantic.hpp:167: undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, std::string*, int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<bool, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<bool, char>::xparse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&) const':
/usr/include/boost/program_options/detail/value_semantic.hpp:167: undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool*, int)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<unsigned short, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::vector<unsigned int, std::allocator<unsigned int> >, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<int, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<unsigned int, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<unsigned short, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, unsigned short*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<unsigned int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<unsigned int, std::allocator<unsigned int> >*, int)':
/usr/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<unsigned int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, unsigned int*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE]+0x38): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o:(.rodata._ZTVN5boost15program_options11typed_valueISt6vectorIiSaIiEEcEE[_ZTVN5boost15program_options11typed_valueISt6vectorIiSaIiEEcEE]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, bool) const'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::vector<int, std::allocator<int> >, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<std::vector<float, std::allocator<float> >, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `boost::program_options::typed_value<float, char>::name() const':
/usr/include/boost/program_options/detail/value_semantic.hpp:19: undefined reference to `boost::program_options::arg'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<int, std::allocator<int> >*, int)':
/usr/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<float, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<float, std::allocator<float> >*, int)':
/usr/include/boost/program_options/detail/value_semantic.hpp:150: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
CMakeFiles/picongpu.dir/picongpu_generated_main.cu.o: In function `void boost::program_options::validate<float, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, float*, long)':
/usr/include/boost/program_options/detail/value_semantic.hpp:92: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
collect2: error: ld returned 1 exit status
build_picongpu/CMakeFiles/picongpu.dir/build.make:2775: recipe for target 'build_picongpu/picongpu' failed
make[2]: *** [build_picongpu/picongpu] Error 1
make[2]: Leaving directory '/home/ljing/PIConGPU/build'
CMakeFiles/Makefile2:90: recipe for target 'build_picongpu/CMakeFiles/picongpu.dir/all' failed
make[1]: *** [build_picongpu/CMakeFiles/picongpu.dir/all] Error 2
make[1]: Leaving directory '/home/ljing/PIConGPU/build'
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Ok I think we have an idea now.

The problem with distributions in the last few years was, that all C++ libraries are slowly moving to C++11 (and later). This caused some ABI incompatebilities, e.g. if Ubuntu ships a C++98 version of boost or a version of boost compiled with another major version of gcc.

What you can do to fix the problem: compile your own boost, luckily it's less painful than it might look like. I would suggest you download boost 1.62.0 and follow the instructions here. Make sure it takes the same compiler as it is used for PIConGPU, which seems to be gcc 4.9.3 by default in your case. You can also append cxxflags=-std=c++11 to the ./b2 -j4 call to be sure it's already C++11 (but in this version of boost they should be ABI compatible again).

After that, just set the BOOST_ROOT and LD_LIBRARY_PATH properly and compile PIConGPU again.

Since you then have to set those two vars every time you compile PIConGPU, you can either export them to your ~/.bashrc or you create a dedicated picongpu.profile script that you source manually, which is a little bit cleaner approach and also allows you to set further environment vars for PIConGPU, e.g. PATH additions for our command line scripts.

@jingli9111 di you try to build your own version of boost to proceed?

I would suggest the following:

  • download a new version of boost, e.g. 1.62.0
  • unpack it and go to its directory
  • run:
./bootstrap.sh --with-libraries=atomic,chrono,context,date_time,filesystem,math,program_options,regex,serialization,system,thread --prefix=$HOME/lib/boost
./b2 cxxflags="-std=c++11" -j4
./b2 install

then export (and source in your picongpu.profile):

export BOOST_ROOT=$HOME/lib/boost
export LD_LIBRARY_PATH=$BOOST_ROOT/lib:$LD_LIBRARY_PATH

We recently saw that some users with an additional version of boost installed in their /usr directory get linker errors in certain situations similar to yours. If you are still getting these errors, try to modify the following few lines in your $PICSRC/src/picongpu/CMakeLists.txt:

In $PICSRC/src/picongpu/CMakeLists.txt is are the lines

find_package(Boost 1.57.0 REQUIRED COMPONENTS program_options regex filesystem
                                              system thread math_tr1
                                              serialization)
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
set(LIBS ${LIBS} ${Boost_LIBRARIES})

Can you change them to:

find_package(Boost 1.57.0 REQUIRED COMPONENTS program_options regex filesystem
                                              system thread math_tr1
                                              serialization)
set(LIBS ${LIBS} Boost::program_options Boost::regex Boost::filesystem Boost::system Boost::thread Boost::math_tr1 Boost::serialization)

and in your src/mpiInfo/CMakeLists.txt:

find_package(Boost REQUIRED COMPONENTS program_options)
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
set(LIBS ${LIBS} ${Boost_LIBRARIES})

replace with

find_package(Boost REQUIRED COMPONENTS program_options)
set(LIBS ${LIBS} Boost::program_options)
Was this page helpful?
0 / 5 - 0 ratings

Related issues

ax3l picture ax3l  路  3Comments

steindev picture steindev  路  4Comments

psychocoderHPC picture psychocoderHPC  路  4Comments

cbontoiu picture cbontoiu  路  3Comments

ax3l picture ax3l  路  4Comments