octave - c++ -API和Boost单元测试导致分段故障



我尝试在使用octave- c++ -API的地方对我的c++代码进行单元测试。如果我在boost单元测试中使用任何来自octave的内容,我会得到错误:

Segmentation fault (core dumped)

编译工作得很好,如果分别使用octave和boost,它工作得很好。有人知道我做错了什么吗?

下面是我的最小示例:

#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()

编译命令:

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"

我软件:

  • OS: CentOS 8
  • Boost: version 1_72
  • Octave: version 5.2

解决方案是切换到不同的软件版本。有了这样的设置,它就可以工作了:

  • OS: ubuntu 2204
  • Boost: version 1_74
  • 音阶:版本6.4

相关内容

  • 没有找到相关文章

最新更新