【发布时间】:2016-11-25 22:21:33
【问题描述】:
我正在尝试在我的机器(Xubuntu 16.04)上构建 QuantLib 1.9,并且我通过“sudo apt-get....”获得了 Boost。
QuantLib 可以正常编译,直到出现以下事件序列:
make[1]: Entering directory '/home/Downloads/packages/QuantLib-1.9/test-suite'
对 libtool 的调用有两个,第一个看起来像这样:
/bin/bash ../libtool --tag=CXX --mode=link g++ -g -O2 -o quantlib-test-suite
后跟近 100 个 *.o 文件,并由该字符串终止:
libUnitMain.la ../ql/libQuantLib.la -lboost_unit_test_framework
在那之后还有第二次调用 libtool:
libtool: link: g++ -g -O2 -o .libs/quantlib-test-suite
后面还有 100 个 *.o 文件,并由以下字符串终止:
./.libs/libUnitMain.a ../ql/.libs/libQuantLib.so -lboost_unit_test_framework
这是错误出现的地方,然后构建失败:
quantlibtestsuite.o: In function `make_test_case':
/usr/include/boost/test/unit_test_suite_impl.hpp:255: undefined reference to boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)'
/usr/include/boost/test/unit_test_suite_impl.hpp:255: undefined reference to `boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)'
americanoption.o: In function `make_test_case':
/usr/include/boost/test/unit_test_suite_impl.hpp:255: undefined reference to `boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)'
/usr/include/boost/test/unit_test_suite_impl.hpp:255: undefined reference to `boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)'
americanoption.o: In function `boost::unit_test::make_test_case(boost::unit_test::callback0<boost::unit_test::ut_detail::unused> const&, boost::unit_test::basic_cstring<char const>)':
/usr/include/boost/test/unit_test_suite_impl.hpp:255: undefined reference to `boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)'
amortizingbond.o:/usr/include/boost/test/unit_test_suite_impl.hpp:255: more undefined references to `boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)' follow
collect2: error: ld returned 1 exit status
Makefile:1075: recipe for target 'quantlib-test-suite' failed
make[1]: *** [quantlib-test-suite] Error 1
make[1]: Leaving directory '/home/Downloads/packages/QuantLib-1.9/test-suite'
Makefile:601: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
【问题讨论】:
-
安装的 Boost 版本是什么,您给
./configure打的电话是什么? -
我通过以下命令行参数配置:sudo ./configure --with-boost-include=/home/EmilioW/Downloads/boost_1_62_0 --with-boost-lib=/home/EmilioW/下载/boost_1_62_0/libs config.log 文件比较大,这里就不放了。一旦脚本尝试编译测试套件,我只会看到错误。