Compiling and linking against Bob

295 views
Skip to first unread message

Manuel Günther

unread,
Jun 1, 2018, 1:55:35 PM6/1/18
to bob-devel
This is not a question, but rather a report on some installation issues of Bob, i.e., when I tried to link other libraries to Bob, and finally my solution.

Since some time, I am compiling and linking some other libraries (Caffe in my case) against Bob using the FindBob.cmake that is provided in https://gitlab.idiap.ch/bob/bob.example.cmake. When I used the same compiler version of GCC, this is not an issue at all.

Unfortunately, GCC has decided to come up with a new compiler version GCC 5, which is binary incompatible with GCC4. Particularly, the generated libraries cannot be linked when compiled with different compiler versions. It also seems to be binary incompatible when compiling with or without the C++11 features enabled.
Under this premise, I tried to use the conda installation of Bob. While the conda installation of bob works flawlessly, I always have problems when I want to compile and link Caffe against Bob. I have tried to do this on different Ubuntu versions: 14.04 with compiler GCC 4.8 and 16.04 with compiler GCC 5.4. Both failed. I have checked, which compiler was used to compile Bob's conda installation -- you can test this via print (bob.core.get_config()) -- and have seen that GCC 7.2 was used.

Based on a hint of Amir, I have also tried to install that compiler version in the conda environment. Now I got the issue that I cannot link against the system packages, and some of the packages are not available in conda. So, this solution also did not work.

So, the only way to compile any library against Bob is to compile Bob by hand using the compiler provided in the system. To do this, here is my recipe for creating a conda environment and compile Bob (which is based on a wiki page https://www.idiap.ch/software/bob/docs/bob/bob/stable/source.html that does seem to have disappeared):

#!/bin/bash

# first, install system-wide packages that do not seem to be available in conda

sudo apt-get install cmake libatlas-base-dev

# get the latest version of miniconda
chmod a+x miniconda.sh
# install conda (if not done yet)
./miniconda.sh

# add conda channels
conda update -n root conda
conda config --set show_channel_urls True
conda config --add channels defaults
conda config --add channels https://www.idiap.ch/software/bob/conda

# create bob environment; you can choose any environment name, I simply use "bob", and I use python version 3.6 here
conda create -n bob --override-channels -c https://www.idiap.ch/software/bob/conda -c defaults python=3.6

# install some required packages
conda install -n bob numpy boost hdf5 cython pip giflib libtiff libpng libmatio nose coverage sphinx
conda install -n bob bob-devel sox libsvm ffmpeg libmatio libblitz

# activate the new "bob" environment and install packages with pip
source activate bob
pip install --upgrade pip
pip install docutils sphinx nose coverage scikit-image scikit-learn gridtk ipdb ipython cython
pip install lmdb leveldb python-gflags pandas h5py networkx pyyaml pillow six libmr zc.buildout

# compile all bob packages
# .. define a function to retrieve bob packages in the desired installation order
# .. this is required since bob packages have inter-dependencies
get_layer() {
case $1 in
  1)
    packages=("bob.extension")
    ;;
  2)
    packages=("bob.blitz")
    ;;
  3)
    packages=("bob.core" "bob.ip.draw")
    ;;
  4)
    packages=("bob.io.base" "bob.sp" "bob.math")
    ;;
  5)
    packages=("bob.ap" "bob.measure" "bob.db.base" "bob.io.image" "bob.io.video" "bob.io.matlab" "bob.ip.base" "bob.ip.color" "bob.ip.gabor" "bob.learn.activation" "bob.learn.libsvm" "bob.learn.boosting")
    ;;
  6)
    packages=("bob.io.audio" "bob.learn.linear" "bob.learn.mlp" "bob.db.wine" "bob.db.mnist" "bob.db.atnt" "bob.ip.flandmark" "bob.ip.facedetect" "bob.ip.optflow.hornschunck" "bob.ip.optflow.liu")
    ;;
  7)
    packages=("bob.learn.em" "bob.db.iris")
    ;;
esac
}

# .. here I use 16 parallel threads for compilation
export BOB_BUILD_PARALLEL=16

# .. finally, install all bob packages from source into the conda environment via pip
for layer in `seq 1 7`;
do
  get_layer ${layer}
  for pkg in "${packages[@]}";
  do
    pip install $pkg --no-cache-dir
  done
done

After installation, you can add any non-C++-compiled packages (such as the bob.bio packages) via pip.

I am not sure, why these instructions are no longer available on the installation page: https://www.idiap.ch/software/bob/docs/bob/docs/stable/bob/doc/install.html

I hope this helps.
Manuel

Amir Mohammadi

unread,
Jun 1, 2018, 4:16:14 PM6/1/18
to bob-...@googlegroups.com
Hi Manuel,

1- Your instructions are dangerous. You need to use one compiler to compile all the software stack to make sure there are no bugs. What stops you from using conda for everything? What packages are not available in conda that stops you from using the conda compiler?
Have you tried 'conda search "*atlas*" '?
Please let me know and I'll look into this on Monday.

2- if you want to compile Bob using the system compiler, why not install all Bob's dependencies using the system package manager instead of conda?

3- instead of that awful pip installation bash script (which I wrote some year ago), why not create a buildout recipe instead? When using buildout, you can install all packages in one command. Installing with pip is very limited since you cannot change the source normally. Most of the time, when people install Bob from source is because they want to change the source code too. For that, buildout is the current best thing.

4- the source installation page is gone because it was outdated and not relevant anymore. Right now bob packages list their dependencies in their conda recipe and they get tested only that way. The only way you can know what are Bob's dependencies is to look at their conda recipe. We do keep track of all dependencies in one package (bob-devel) but that my become outdated as well since it's not essential to development of Bob packages.

5- Do not install the "bob" conda package when developing Bob. Installing it will impose unnecessary restrictions where you'll end up with version conflicts.

6- I suggest we turn this email into an stackoverflow question when we have figured out the proper steps. This way, the community can keep it updated.

Thanks,
Amir


--
-- You received this message because you are subscribed to the Google Groups bob-devel group. To post to this group, send email to bob-...@googlegroups.com. To unsubscribe from this group, send email to bob-devel+...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/bob-devel or directly the project website at http://idiap.github.com/bob/
---
You received this message because you are subscribed to the Google Groups "bob-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bob-devel+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Manuel Günther

unread,
Jun 1, 2018, 7:01:34 PM6/1/18
to bob-devel
Dear Amir,

To 1.: What exactly make my instructions dangerous? As I mentioned, this was the only possible way to use conda and compile Bob packages from scratch using my system compiler.
          I don't remember why I had to install ATLAS as a separate package. Probably, the conda version was compiled with the wrong compiler. Maybe it is just some left-over in my script, and I could actually use the conda package for atlas.
          Why I don't use conda for everything is simple: I need to compile additional software (Caffe, OpenCV, ...) and link that against Bob. I am not aware of how I can build Caffe using CMake inside conda. I tried to get everything running just based on conda packages and compilers, but I gave up after two days since I always had linker issues because of wrong compiler versions.

To 2.: I want to use the power of conda, i.e., have different environments with different packages. Installing everything in the system on our servers will f*** around with other users of these servers, which I want to avoid.

To 3.: I want to install the packages into my conda environment. I am not sure if I can do that with buildout. I want to build several packages against this environment (using buildout), so using pip seemed to be the easiest solution.

To 4.: That is OK for me. Currently, I used the bob-devel package, which is IMHO already missing some packages such as sox, libsvm and alike. I had to add these manually to get all the Bob packages to build. I am not saying that this script is optimal, but I wanted to share it so that other people with the same issue have a starting point.

To 5.: I am not installing the bob conda package. Only the name of my environment is "bob".

So, if you could suggest a better alternative to my script that incorporates all my requirements, I would be happy to try that out.

Thanks, Manuel

Amir Mohammadi

unread,
Jun 4, 2018, 12:52:50 PM6/4/18
to bob-...@googlegroups.com
Hi Manuel,


> What exactly make my instructions dangerous?
You are mixing binaries that come from different compilers.
There could be bugs that are hard to notice, find, and debug.

Looks like you just want to install Bob. Your best bet is still to conda install Bob.
I still cannot understand what is your problem in linking against Bob.
Could you create a minimal example to show why you cannot link to built conda version of Bob?

As for caffe, you can follow its conda recipe in order to compile it:
https://github.com/AnacondaRecipes/caffe-feedstock/blob/master/recipe/meta.yaml
https://github.com/AnacondaRecipes/caffe-feedstock/blob/master/recipe/build.sh
It builds with the anaconda compilers:
https://github.com/AnacondaRecipes/caffe-feedstock/blob/18b7fe5e46fe0abb280191b4597fd3be39ea4ab7/recipe/meta.yaml#L24
it means you can do it too.

Best,
Amir


--

Manuel Günther

unread,
Jun 4, 2018, 3:19:52 PM6/4/18
to bob-devel
In fact, I now have experienced the same issue, i.e., the conda environment did not work well with my Ubuntu 14.04 operating system. I had to do major tweaks to make my script from above run on 14.04.

First of all, I am not very familiar with conda and how the whole installation procedure works. I am pretty sure, this is true for most of the people that want to use Bob. The build.sh script that you linked above will not work stand-alone since it uses some variables that do not seem to be set anywhere.
So, it would be great if we could have a simpler version just using cmake in order to build and link something against Bob.

Here is a minimal example based on the FindBob.cmake file found in bob.example.cmake: https://gitlab.idiap.ch/bob/bob.example.cmake 
This example tries to link against a Bob version installed via conda based on the installation instructions, using the system compiler.

First, the CMakeLists.txt file. Please replace [CONDA] with your conda environment directory in order to locate Bob correctly:

cmake_minimum_required(VERSION 2.8)
project(test)

set(BOB_PREFIX_PATH "[CONDA]/envs/bob_v3")

# Set the module path so that "FindBob.cmake" is found
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR})

# Add the -pthread option
set(CMAKE_CXX_FLAGS "-pthread" CACHE STRING "Flags used by the compiler during release builds" FORCE)

# Find all Bob packages recursively
find_package(Bob COMPONENTS bob.io.image bob.ip.base bob.ip.color REQUIRED)

# Add Bob's include directories
include_directories(${Bob_INCLUDE_DIRS})
# Add Bob's library directories
link_directories(${Bob_LIBRARY_DIRS})
# Add Bob's libraries
link_libraries(${Bob_LIBRARIES} boost_system)
# Add Bob's definitions
add_definitions(${Bob_DEFINITIONS})

# create an "my_test" executable from file "test.cpp"
add_executable(my_test test.cpp)

Now, a small (maybe not minimal) example C++ code, which should be stored in a file called "test.py":

#include <bob.io.image/image.h>
#include <bob.ip.base/LBP.h>
#include <bob.ip.color/color.h>

int main(int argc, char** argv){
  // read image
  blitz::Array<uint8_t, 3> image = bob::io::image::read_color_image("test.png");

  // convert to grayscale
  blitz::Array<uint8_t, 2> gray(image.extent(1), image.extent(2));
  bob::ip::color::rgb_to_gray(image, gray);

  // extract LBP
  bob::ip::base::LBP lbp(8);
  blitz::Array<uint16_t, 2> lbp_image(lbp.getLBPShape(gray.extent()));
  lbp.extract(gray, lbp_image);
}

Now, run cmake to locate Bob packages:

$ cmake .
-- Found Bob package 'bob.io.image' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image'
-- Found Bob package 'bob.extension' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/extension'
-- Found Bob package 'bob.blitz' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/blitz'
-- Found Bob package 'bob.core' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core'
-- Found Bob package 'bob.io.base' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base'
-- Found Bob package 'bob.ip.base' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/base'
-- Found Bob package 'bob.sp' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/sp'
-- Found Bob package 'bob.math' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/math'
-- Found Bob package 'bob.ip.color' at '[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/color'
-- Found Bob include directories '/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/extension/include;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/blitz/include;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/include;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/include;/[CONDA]/envs/bob_v3/include;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/include;/[CONDA]/envs/bob_v3/include;/[CONDA]/envs/bob_v3/include/libpng16;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/sp/include;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/math/include;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/base/include;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/color/include'
-- Found Bob library directories '/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/sp;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/math;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/base;/[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/color'
-- Found Bob libraries 'bob_core;bob_io_base;bob_io_image;bob_sp;bob_math;bob_ip_base;bob_ip_color'
-- Found Bob definitions '-DHAVE_BOOST=1;-DBOOST_VERSION="1.65.1";-DHAVE_HDF5=1;-DHAVE_LIBJPEG=1;-DHAVE_LIBTIFF=1;-DHAVE_GIFLIB=1;-DHAVE_LIBPNG=1'
-- Configuring done
-- Generating done
-- Build files have been written to: .

And try to build (there is no difference whether you active the bob_v3 environment or not):

$ make
Scanning dependencies of target my_test
[100%] Building CXX object CMakeFiles/my_test.dir/test.cpp.o
In file included from [CONDA]/envs/bob_v3/include/boost/type_traits/detail/config.hpp:15:0,
                 from [CONDA]/envs/bob_v3/include/boost/type_traits/intrinsics.hpp:16,
                 from [CONDA]/envs/bob_v3/include/boost/type_traits/alignment_of.hpp:15,
                 from [CONDA]/envs/bob_v3/include/boost/type_traits/type_with_alignment.hpp:11,
                 from [CONDA]/envs/bob_v3/include/boost/smart_ptr/make_shared_object.hpp:20,
                 from [CONDA]/envs/bob_v3/include/boost/smart_ptr/make_shared.hpp:14,
                 from [CONDA]/envs/bob_v3/include/boost/make_shared.hpp:14,
                 from [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/include/bob.io.base/blitz_array.h:15,
                 from [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/include/bob.io.base/File.h:16,
                 from [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/include/bob.io.image/bmp.h:30,
                 from [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/include/bob.io.image/image.h:24,
                 from ./test.cpp:1:
[CONDA]/envs/bob_v3/include/boost/version.hpp:22:0: warning: "BOOST_VERSION" redefined [enabled by default]
 #define BOOST_VERSION 106501
 ^
<command-line>:0:0: note: this is the location of the previous definition
Linking CXX executable my_test
/usr/bin/ld: warning: libhdf5.so.101, needed by [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_system.so.1.65.1, needed by [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_filesystem.so.1.65.1, needed by [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libjpeg.so.9, needed by [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libgif.so.7, needed by [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libpng16.so.16, needed by [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_iostreams.so.1.65.1, needed by [CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so, not found (try using -rpath or -rpath-link)
CMakeFiles/my_test.dir/test.cpp.o: In function `bob::io::image::read_color_image(std::string const&, std::string)':
test.cpp:(.text._ZN3bob2io5image16read_color_imageERKSsSs[_ZN3bob2io5image16read_color_imageERKSsSs]+0x49): undefined reference to `boost::filesystem::path::extension() const'
CMakeFiles/my_test.dir/test.cpp.o: In function `blitz::Array<unsigned char, 3> bob::io::base::array::blitz_array::get<unsigned char, 3>(bool)':
test.cpp:(.text._ZN3bob2io4base5array11blitz_array3getIhLi3EEEN5blitz5ArrayIT_XT0_EEEb[_ZN3bob2io4base5array11blitz_array3getIhLi3EEEN5blitz5ArrayIT_XT0_EEEb]+0x11f): undefined reference to `bob::io::base::array::typeinfo::str() const'
test.cpp:(.text._ZN3bob2io4base5array11blitz_array3getIhLi3EEEN5blitz5ArrayIT_XT0_EEEb[_ZN3bob2io4base5array11blitz_array3getIhLi3EEEN5blitz5ArrayIT_XT0_EEEb]+0x220): undefined reference to `bob::io::base::array::typeinfo::str() const'
CMakeFiles/my_test.dir/test.cpp.o: In function `blitz::Array<unsigned char, 3> bob::io::base::array::wrap<unsigned char, 3>(bob::io::base::array::interface const&)':
test.cpp:(.text._ZN3bob2io4base5array4wrapIhLi3EEEN5blitz5ArrayIT_XT0_EEERKNS2_9interfaceE[_ZN3bob2io4base5array4wrapIhLi3EEEN5blitz5ArrayIT_XT0_EEERKNS2_9interfaceE]+0x135): undefined reference to `bob::io::base::array::typeinfo::str() const'
test.cpp:(.text._ZN3bob2io4base5array4wrapIhLi3EEEN5blitz5ArrayIT_XT0_EEERKNS2_9interfaceE[_ZN3bob2io4base5array4wrapIhLi3EEEN5blitz5ArrayIT_XT0_EEERKNS2_9interfaceE]+0x232): undefined reference to `bob::io::base::array::typeinfo::str() const'
CMakeFiles/my_test.dir/test.cpp.o: In function `blitz::Array<unsigned short, 3> bob::io::base::array::blitz_array::get<unsigned short, 3>(bool)':
test.cpp:(.text._ZN3bob2io4base5array11blitz_array3getItLi3EEEN5blitz5ArrayIT_XT0_EEEb[_ZN3bob2io4base5array11blitz_array3getItLi3EEEN5blitz5ArrayIT_XT0_EEEb]+0x11f): undefined reference to `bob::io::base::array::typeinfo::str() const'
CMakeFiles/my_test.dir/test.cpp.o:test.cpp:(.text._ZN3bob2io4base5array11blitz_array3getItLi3EEEN5blitz5ArrayIT_XT0_EEEb[_ZN3bob2io4base5array11blitz_array3getItLi3EEEN5blitz5ArrayIT_XT0_EEEb]+0x220): more undefined references to `bob::io::base::array::typeinfo::str() const' follow
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_get_IHDR@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_create_read_struct@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dset_extent'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Pcreate'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Pset_create_intermediate_group'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::iostream_category()@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Aexists'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_INT8_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5P_CLS_LINK_CREATE_ID_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_size'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_INT16_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_std_error@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Fflush'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Fopen'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5check_version'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `EGifPutScreenDesc'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::deflated'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Awrite'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_member_type'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Aclose'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::detail::zlib_base::before(char const*&, char const*, char*&, char*)'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/base/libbob_ip_base.so: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::length_error::length_error(char const*)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_read_header@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `EGifPutLine'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Acreate2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_INT64_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Ldelete'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib_error::check(int)'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_create_write_struct@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dget_space'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Literate'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Eclear2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `EGifPutImageDesc'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `vtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Gcreate2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::logic_error::logic_error(char const*)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Fget_create_plist'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::runtime_error::runtime_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Aiterate2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `typeinfo for std::ios_base::failure[abi:cxx11]@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_member_value'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Eget_auto2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_CreateDecompress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::detail::zlib_base::xdeflate(int)'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Aopen'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_finish_decompress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::ios_base::failure[abi:cxx11]::~cxx11()@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `EGifOpenFileName'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_CreateCompress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_set_interlace_handling@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::detail::zlib_base::reset(bool, bool)'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Ocopy'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_write_info@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tenum_insert'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tinsert'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_set_palette_to_rgb@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `GifErrorString'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_destroy_read_struct@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::stream_end'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dread'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_set_defaults@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::no_flush'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `DGifGetExtensionNext'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_read_row@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Pset_deflate'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::best_speed'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Aget_space'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Sget_simple_extent_ndims'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_start_decompress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::detail::zlib_base::do_init(boost::iostreams::zlib_params const&, bool, void* (*)(void*, unsigned int, unsigned int), void (*)(void*, void*), void*)'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_UINT64_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `GifQuantizeBuffer'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tset_size'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Pset_userblock'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::_V2::error_category::~error_category()@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Adelete'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Aget_type'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Fcreate'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::logic_error::logic_error(std::logic_error const&)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_set_IHDR@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::detail::zlib_base::zlib_base()'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `DGifOpenFileName'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Pclose'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Screate_simple'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `vtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::ios_base::failure[abi:cxx11]::what() const@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Sselect_hyperslab'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_DOUBLE_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Sget_simple_extent_dims'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_destroy_write_struct@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_write_row@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_set_expand_gray_1_2_4_to_8@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::filesystem::path::compare(boost::filesystem::path const&) const'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_read_scanlines@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_C_S1_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `DGifGetExtension'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_start_compress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::runtime_error::runtime_error(std::runtime_error const&)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `vtable for std::ios_base::failure[abi:cxx11]@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::ios_base::failure[abi:cxx11]::~cxx11()@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dopen2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `GifMakeMapObject'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_get_valid@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `std::ios_base::failure[abi:cxx11]::cxx11(char const*, std::error_code const&)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tcopy'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dget_type'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_create_info_struct@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_set_quality@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_sign'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `DGifCloseFile'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_finish_compress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::best_compression'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Oget_info_by_name'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_stdio_dest@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `typeinfo for std::_V2::error_category@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::_M_sync(char*, unsigned long, unsigned long)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_FLOAT_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `operator delete[](void*, unsigned long)@CXXABI_1.3.9'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Eset_auto2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `GifFreeMapObject'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `DGifGetImageDesc'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_UINT32_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Aread'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::detail::zlib_base::~zlib_base()'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_order'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_destroy_compress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5P_CLS_DATASET_CREATE_ID_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `vtable for std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_nmembers'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_LDOUBLE_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/ip/base/libbob_ip_base.so: undefined reference to `std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_member_index'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Sclose'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::default_strategy'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `DGifGetRecordType'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `VTT for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5open'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_istringstream()@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Pset_chunk'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Pget_userblock'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `VTT for std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5P_CLS_FILE_CREATE_ID_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Ewalk2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_destroy_decompress@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tclose'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `EGifCloseFile'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `DGifGetLine'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_write_end@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_set_packing@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_read_info@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_INT32_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_get_error_ptr@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Gopen2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_UINT8_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tenum_create'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::detail::zlib_base::after(char const*&, char*&, bool)'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Sset_extent_simple'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::_V2::error_category::_M_message[abi:cxx11](int) const@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_read_end@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dwrite'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_write_scanlines@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `jpeg_stdio_src@LIBJPEG_9.0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dclose'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5T_NATIVE_UINT16_g'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::finish'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::runtime_error::runtime_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@GLIBCXX_3.4.21'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_member_class'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_init_io@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tget_class'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/image/libbob_io_image.so: undefined reference to `png_set_strip_alpha@PNG16_0'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Tcreate'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Fclose'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/core/libbob_core.so: undefined reference to `boost::iostreams::zlib::default_compression'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Lmove'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Gclose'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `H5Dcreate2'
[CONDA]/envs/bob_v3/lib/python3.6/site-packages/bob/io/base/libbob_io_base.so: undefined reference to `std::_V2::generic_category()@GLIBCXX_3.4.21'
collect2: error: ld returned 1 exit status
make[2]: *** [my_test] Error 1
make[1]: *** [CMakeFiles/my_test.dir/all] Error 2
make: *** [all] Error 2

While the error warning on top says "not found", this is purely an artifact of incompatible shared objects/compilers. When compiling and linking with correctly installed bob files (i.e., built with the system compiler), this works fine.

As noted above, this is just a small example. My real project includes Caffe, OpenCV and other libraries, which have their own dependencies, and where I have to compile Caffe and link it against some Bob modules in C++.

Manuel

Manuel Günther

unread,
Jun 4, 2018, 8:15:22 PM6/4/18
to bob-devel
I think, I finally got it. Phew. The problem is two-fold.

1. While compiling Caffe in GPU mode, the cuda compiler doesn't like GCC 7.2: https://stackoverflow.com/questions/6622454/cuda-incompatible-with-my-gcc-version
   The solution here is to add another cmake flag to tell the cuda compiler to use the default compiler: -DCUDA_HOST_COMPILER=/usr/bin/g++

2. The second issue is home-grown. The problem is that -- for some reason that I am not able to dig out -- the cuda compilation does not like Bob's definition -DBOOST_VERSION="1.65.1". Particularly, it does not like the quotes. When I compile any cuda file with that definition, I get the following very cryptic error message:

CMake Warning (dev) at cuda_compile_1_generated_math_functions.cu.o.Release.cmake:81:
  Syntax Warning in cmake code at column 141

  Argument not separated from preceding token by whitespace.
This warning is for project developers.  Use -Wno-dev to suppress it.

nvcc fatal   : Stray '"' character
CMake Error at cuda_compile_1_generated_math_functions.cu.o.Release.cmake:222 (message):

After seeing this message, I gave up the last time since I could not decode, what it was saying. Now, I have dug deeper and saw that the quotes in the compiler option were the problem. After removing the quotes, it was compiling and linking.

I will open an issue in the according Bob package.

Thanks for your patience
Manuel

Amir Mohammadi

unread,
Jun 6, 2018, 10:39:45 AM6/6/18
to bob-...@googlegroups.com
Hi Manuel,

Are you installing the anaconda compilers?
conda install gcc_linux-64 gxx_linux-64

I cannot run your example. It fails with:
cmake .
-- The C compiler identification is GNU 7.2.0
-- The CXX compiler identification is GNU 7.2.0
-- Check for working C compiler: miniconda/envs/bob36/bin/x86_64-conda_cos6-linux-gnu-cc
-- Check for working C compiler: miniconda/envs/bob36/bin/x86_64-conda_cos6-linux-gnu-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: miniconda/envs/bob36/bin/x86_64-conda_cos6-linux-gnu-c++
-- Check for working CXX compiler: miniconda/envs/bob36/bin/x86_64-conda_cos6-linux-gnu-c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Bob package 'bob.io.image' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/image'
-- Found Bob package 'bob.extension' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/extension'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
m-- Found Bob package 'bob.blitz' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/blitz'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
-- Found Bob package 'bob.core' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/core'
aTraceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
-- Found Bob package 'bob.io.base' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/base'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
kTraceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
-- Found Bob package 'bob.ip.base' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/ip/base'
e-- Found Bob package 'bob.sp' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/sp'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
-- Found Bob package 'bob.math' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/math'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
-- Found Bob package 'bob.ip.color' at 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/ip/color'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'bob'
-- Found Bob include directories 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/extension/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/blitz/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/core/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/base/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/image/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/sp/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/math/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/ip/base/include;miniconda/envs/bob36/lib/python3.6/site-packages/bob/ip/color/include'
-- Found Bob library directories 'miniconda/envs/bob36/lib/python3.6/site-packages/bob/core;miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/base;miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/image;miniconda/envs/bob36/lib/python3.6/site-packages/bob/sp;miniconda/envs/bob36/lib/python3.6/site-packages/bob/math;miniconda/envs/bob36/lib/python3.6/site-packages/bob/ip/base;miniconda/envs/bob36/lib/python3.6/site-packages/bob/ip/color'

-- Found Bob libraries 'bob_core;bob_io_base;bob_io_image;bob_sp;bob_math;bob_ip_base;bob_ip_color'
-- Found Bob definitions ''

-- Configuring done
-- Generating done
-- Build files have been written to: /git/bobs/bob.example.cmake

$ make
Scanning dependencies of target my_test
[ 50%] Building CXX object CMakeFiles/my_test.dir/test.cpp.o
In file included from miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/image/include/bob.io.image/image.h:24:0,
                 from /git/bobs/bob.example.cmake/test.cpp:1:
miniconda/envs/bob36/lib/python3.6/site-packages/bob/io/image/include/bob.io.image/bmp.h:27:10: fatal error: boost/shared_ptr.hpp: No such file or directory
 #include <boost/shared_ptr.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/my_test.dir/build.make:63: CMakeFiles/my_test.dir/test.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/my_test.dir/all] Error 2
make: *** [Makefile:84: all] Error 2


--
Reply all
Reply to author
Forward
0 new messages