【问题标题】:installed boost, but libboost_unit_test_framework.a not found in /usr/local/lib/安装了 boost,但 libboost_unit_test_framework.a 在 /usr/local/lib/ 中找不到
【发布时间】: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


【解决方案1】:

最好使用包管理软件来做到这一点。我强烈推荐homebrew

您可以使用一个命令安装 boost。 brew install boost

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2013-04-25
    相关资源
    最近更新 更多