I try to unit test my C++ code where I use the octave-C++-API. If I use anything from octave in the boost unit test I get the error:
Segmentation fault (core dumped)
The compilation works just fine and if use both octave and boost separately it works fine. Does anyone know what I did wrong?
Here is my minimal example:
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE boostOctaveTest
#include <boost/test/unit_test.hpp>
#include <octave/oct.h>
BOOST_AUTO_TEST_SUITE(TestOctave)
BOOST_AUTO_TEST_CASE(octave)
{
octave_value var = 42;
BOOST_CHECK(var.int_value() == 42ul);
}
BOOST_AUTO_TEST_SUITE_END()
The compile command is:
mkoctfile --link-stand-alone -D_GLIBCXX_ASSERTIONS main.cpp -o main -I/home/jlammering/tools/Boost/boost_1_72_0 -L"/home/jlammering/tools/Boost/boost_1_72_0/stage/lib" -l"boost_unit_test_framework"
My software:
- OS: CentOS 8
- Boost: version 1_72
- Octave: version 5.2
The solution was to switch to different software versions. With this setup it works: