【发布时间】:2015-03-19 16:25:56
【问题描述】:
我从其官方网站 boost 1.57.0 安装了整个 boost
现在,我只需要boost测试库,我从github下载了一个例子https://github.com/jsankey/boost.test-examples
在它的 makefile 中,我删除了其他目标,现在只尝试 hello.cpp。
makefile 是这样的:
TARGETS=hello
all: $(TARGETS)
test: $(TARGETS) $(addprefix run-,$(TARGETS))
%: %.cpp
$(CXX) -o$@ $^ -lboost_unit_test_framework
run-%: %
-./$^ --output_format=XML --log_level=test_suite > $(^)-report.xml
clean:
rm $(TARGETS) *-report.xml
boost测试文件hello.cpp是:
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE Hello
#include <boost/test/unit_test.hpp>
int add(int i, int j)
{
return i + j;
}
BOOST_AUTO_TEST_CASE(universeInOrder)
{
BOOST_CHECK(add(2, 2) == 5);
}
然后我下载并安装了 boost 1.57.0 然后使用命令
sudo tar -C /usr/local -xjvf ~/Downloads/boost_1_57_0.tar.bz2
然后我 cd 到目录,并参考这篇文章,/usr/bin/ld: error: cannot find -lboost_unit_test_framework
我使用 bash 运行 export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
然后尝试g++ -ohello /usr/local/lib/libboost_unit_test_framework.a hello.cpp
但它抱怨 libboost_unit_test_framework.a 未找到。
已更改但 libboost_unit_test_framework.a 未在 /usr/local/lib/ 中找到。我试图搜索“boost_unit”,但在 Mac 上没有名为该文件的文件。
那么,下载的文件夹中不就是boost测试库吗?我看到包含头文件在 .../boost_1_57_0/boost/test/... 那么,出了什么问题,我该如何编译和运行基本的 hello 测试?谢谢你。
我认为是因为我没有运行脚本... ./bootstrap.sh ./b2 ./b2 安装
然后那个.a文件就出来了。但是,我仍然无法运行它。有人可以帮忙吗? ...
【问题讨论】:
-
你在
/usr/loca/lib中看到libboost_unit_test_framework.a吗? -
@Miline :嗨,我在 /usr/local/lib 中没有它。你知道我怎么下载吗?可以在 Mac 上运行的版本,我在网上找不到。另外,我有一个叫做 libboost_unit_test_framework-vc71-sgd-1_50.lib 的东西,我搬到了 /usr/local/lib,但它也不起作用
标签: macos unit-testing boost shared-libraries boost-test