From 319f10b1f20170adf7efa05938b6bb23584c4729 Mon Sep 17 00:00:00 2001 From: Dave Tang Date: Mon, 22 Jun 2026 20:12:06 +0900 Subject: GNU Make notes --- examples/dragmap/README.md | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 examples/dragmap/README.md (limited to 'examples/dragmap/README.md') diff --git a/examples/dragmap/README.md b/examples/dragmap/README.md new file mode 100644 index 0000000..29ba382 --- /dev/null +++ b/examples/dragmap/README.md @@ -0,0 +1,47 @@ +# README + +Trying to build [DRAGMAP](https://github.com/Illumina/DRAGMAP) using updated +[Boost libraries](https://www.boost.org/). But the building process seems to be +using the outdated system Boost libraries in `/usr/include/boost/`. This is because I keep getting these errors: + + /usr/include/boost/program_options/detail/value_semantic.hpp:170: undefined reference to `boost::program_options::validate(boost::any&, std::vector, std::allocator >, std::allocator, std::allocator > > > const&, std::__cxx11::basic_string, std::allocator >*, int)' + +Here I examine the behaviour of the following environment variables: + +* `BOOST_ROOT` +* `BOOST_INCLUDEDIR` +* `BOOST_LIBRARYDIR` + +The required Boost libraries are: + + BOOST_LIBRARIES := system filesystem date_time thread iostreams regex program_options + +They reside in `/usr/include/boost169/boost/`; for example: + + /usr/include/boost169/boost/system + /usr/include/boost169/boost/filesystem + +Use `./run.sh` to run all the test scripts. + +## Notes + +* The `CPPFLAGS` macro is the one to use to specify `#include` directories. +* The `LDFLAGS` is normally set to contain options that are passed through to + the linker (so may include required libraries). + +[Probably the same +problem](https://stackoverflow.com/questions/62280304/yum-using-boost-1-69-instead-of-default-1-53-version-on-centos) +but I do not want to manually manipulate the symlinks by changing: + + /lib64/libboost_system.so -> libboost_system.so.1.53.0 + +to: + + /lib64/libboost_system.so -> libboost_system.so.1.69.0 + +## Fix + +Do not include `boost` in the DIR. For example: + + export BOOST_INCLUDEDIR=/usr/include/boost169 + export BOOST_LIBRARYDIR=/usr/lib64/boost169 -- cgit v1.3.1