gpt4 book ai didi

c++ - 在 OS X 10.9 上编译 Boost 并链接到自己的应用程序

转载 作者:行者123 更新时间:2023-11-28 02:42:34 26 4
gpt4 key购买 nike

我已经阅读了很多帖子,但我无法理解如何在 OS X 10.9.4 上编译 boost 库以便在我的应用程序中静态链接它。

我安装了 Xcode 5,还安装了“命令行工具”。

我已经下载了 boost 1.56.0 的 ZIP 压缩包, Bootstrap 是:

./bootstrap.sh --prefix=/Users/foo/dev/lib/boost_1_56_0 --libdir=/Users/foo/dev/lib/boost_1_56_0/lib

然后安装

./b2

但是当我尝试像下面这样编译一个小测试时:

#include <boost/log/trivial.hpp>

int main(int, char*[])
{
BOOST_LOG_TRIVIAL(trace) << "A trace severity message";


return 0;
}

与:

clang logtest.cpp -I /Users/foo/lib/boost_1_56_0/include -L /Users/foo/lib/boost_1_56_0/lib

我在链接方面遇到了很多错误:

Undefined symbols for architecture x86_64: 
"boost::log::v2s_mt_posix::record_view::public_data::destroy(boost::log::v2s_mt_posix::record_view::public_data const*)", referenced from:
boost::log::v2s_mt_posix::record::reset() in logtest-d5345b.o
...

所以我也尝试在bootstrap中加入如下参数:

cxxflags="-arch i386 -arch x86_64" address-model=32_64 threading=multi macos-version=10.9 stage

以及 b2 的以下内容:

threading=multi link=static runtime-link=static cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++"

但是什么都没有改变...

所以我正在寻找一个指南,教我如何从头开始编译 boost 库,以及如何编译链接它的应用程序。

最佳答案

在您的构建命令中,您指定了链接目录,但没有指定您将可执行文件链接到的库。将 -llibrary-name 添加到命令中。我认为应该是

clang logtest.cpp -I /Users/foo/lib/boost_1_56_0/include -L /Users/foo/lib/boost_1_56_0/lib -lboost_log

也许,添加其他库 boost_log 依赖(boost_log_setuppthread 是很好的候选者)。

有关链接 boost 库的更多信息,请参阅 boost documentation .

关于c++ - 在 OS X 10.9 上编译 Boost 并链接到自己的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25467378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com