繁体   English   中英

在Mac OS X 10.8上编译并使用boost 1.51.0

Compile and use boost 1.51.0 on Mac OS X 10.8

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

因此,我花了最后20个小时来尝试使Boost在OS X 10.8下工作,并且最终使我可以无错误地进行编译,但是当我尝试编译使用Boost.test的测试用例时,我又回来了在一个受伤的世界。 我应该提到,我之所以编译自己而不使用可用的二进制文件是因为我想使用c ++ 11和libc ++。

当我编译boost时,我这样称呼b2:

./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++" linkflags="-std=c++11 -stdlib=libc++" link=static

并编译所有文件。 然后我有这段代码

#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE Addition
#include <boost/test/unit_test.hpp>

int addition(int i, int j)
{
    return i + j;
}

BOOST_AUTO_TEST_CASE(universeInOrder)
{
    BOOST_CHECK(addition(2, 2) == 4);
}

我尝试编译

clang++ -std=c++11 -stdlib=libc++ -g -Wall -v -I/Users/cb/Downloads/boost_1_51_0 tests/arithmetic.cpp -o tests/arithmetic /Users/cb/Downloads/boost_1_51_0/stage/lib/libboost_unit_test_framework.a`

它失败了,给了我这个错误:

"/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.8.0 -o tests/arithmetic /var/folders/pg/4wcxn1j12c3188vqrv0x4w9r0000gn/T/arithmetic-UFmO1B.o     /Users/cb/Downloads/boost_1_51_0/stage/lib/libboost_unit_test_framework.a -lc++ -lSystem     /usr/bin/../lib/clang/4.0/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
  "boost::unit_test::unit_test_main(bool (*)(), int, char**)", referenced from:
      _main in arithmetic-UFmO1B.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

起初,我认为这是因为boost没有针对64位进行编译,所以我尝试告诉b2专门这样做,但是没有什么区别,而且我还认为默认情况下,它在OS X上针对64位进行编译。

关于它为什么失败以及如何使其工作的任何想法?

1 个回复

看起来测试的编译不好。 您要求

 #define BOOST_TEST_DYN_LINK 

但比您链接的boost.test静态版本

 /Users/cb/Downloads/boost_1_51_0/stage/lib/libboost_unit_test_framework.a 

与IIRC相比,此库的静态和动态版本有所不同。 因此,要么链接库的动态版本(扩展名为.so的库),要么删除该定义。

4 在mac os x中链接(10.8)

我正在尝试编译一个多文件的代码,到目前为止一直工作正常。 但现在我收到了一些链接器错误。 我有一个类定义'njPhaseSpace',报告为: 我不知道/var/folder/.../ccb0Psoz.o文件是关于什么的,它不是(故意)开始在我的项目中使用。 如果我将名称更改为不同 ...

5 提升编译错误Mac OS X 10.7.4

我想在我的Mac上使用boost。 Mac OS X 10.7.4 Xcode 4.5 我通过自制软件安装了boost。 Boost版本是1.49.0。 我设置了我的Xcode项目。 添加标题搜索路径。 添加库 当我编译我的项目时,我有很多错误。 C ...

6 如何在Mac OS X 10.8 / Xcode 4.4上使用/安装gcc

我已安装Mountain Lion(Mac OS X 10.8),现在gcc似乎不再可用了。 我还安装了Xcode 4.4,因此没有更多/ Developer目录。 我需要gcc用于mac端口和ruby gems(具有本机扩展)。 Xcode 4.4是否包含gcc或有没有办法安装g ...

10 构建OpenCV Mac OS X 10.8(静态)

使用以下命令构建opencv静态库: 和其他关闭 图书馆建设很好 现在,我创建一个新的Qt项目 在main.cpp中 但是,当我构建项目时,出现下一个错误: -- ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM