gpt4 book ai didi

c++ - 在 OSX 10.7.2 上使用 boost 1.48 boost 日志

转载 作者:太空狗 更新时间:2023-10-29 21:27:42 26 4
gpt4 key购买 nike

我从 https://boost-log.svn.sourceforge.net/svnroot/boost-log/trunk/ 中提取了最新的 BOOST 日志并尝试根据我当前在 osx lion (10.7.2) 上安装的 BOOST (1.47) 构建它,它提示说它需要 boost 1.48。

所以我下载并构建了 BOOST 1.48,一切顺利。然后我更新了我的 BOOST 安装,并像这样运行 Bootstrap :

/bootstrap.sh --with-libraries=log --prefix=/usr/local 
--includedir=/usr/local/include --libdir=/usr/local/lib

此时一切正常。但是现在,当我运行时:

sudo ./b2

我收到以下错误:

...found 2606 targets...
...updating 9 targets...
darwin.compile.c++ bin.v2/libs/log/build/darwin-4.2.1/release/threading-multi/tick_count.o
libs/log/src/tick_count.cpp:220:5: error: #error Boost.Log: POSIX timers not
supported on your platform

"g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -dynamic
-no-cpp- precomp -gdwarf-2 -fexceptions -fPIC -DBOOST_ALL_NO_LIB=1
DBOOST_DATE_TIME_DYN_LINK=1 - DBOOST_FILESYSTEM_DYN_LINK=1
-DBOOST_LOG_BUILDING_THE_LIB=1 -DBOOST_LOG_DLL - DBOOST_LOG_USE_NATIVE_SYSLOG=1
-DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_THREAD_POSIX - DBOOST_THREAD_USE_DLL=1 -
DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "bin.v2/libs/log/build/darwin-4.2.1/release/threading-multi/tick_count.o" "libs/log/src/tick_count.cpp"

...failed darwin.compile.c++ bin.v2/libs/log/build/darwin-4.2.1/release/threading-multi/tick_count.o...
...skipped <pbin.v2/libs/log/build/darwin-4.2.1/release/threading-multi>libboost_log.dylib for lack of <pbin.v2/libs/log/build/darwin-4.2.1/release/threading-multi>tick_count.o...
...skipped <pstage/lib>libboost_log.dylib for lack of <pbin.v2/libs/log/build/darwin- 4.2.1/release/threading-multi>libboost_log.dylib...
...skipped <pbin.v2/libs/log/build/darwin-4.2.1/release/threading-multi>libboost_log_setup.dylib for lack of <pbin.v2/libs/log/build/darwin-4.2.1/release/threading-multi>libboost_log.dylib...
...skipped <pstage/lib>libboost_log_setup.dylib for lack of <pbin.v2/libs/log/build/darwin-4.2.1/release/threading-multi>libboost_log_setup.dylib...
darwin.compile.c++ bin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi/tick_count.o
libs/log/src/tick_count.cpp:220:5: error: #error Boost.Log: POSIX timers not supported on your platform

"g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -no-cpp-precomp -gdwarf-2 -fexceptions -DBOOST_ALL_NO_LIB=1 -DBOOST_LOG_BUILDING_THE_LIB=1 -DBOOST_LOG_USE_NATIVE_SYSLOG=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "bin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi/tick_count.o" "libs/log/src/tick_count.cpp"

...failed darwin.compile.c++ bin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi/tick_count.o...
...skipped <pbin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi>libboost_log.a(clean) for lack of <pbin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi>tick_count.o...
...skipped <pbin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi>libboost_log.a for lack of <pbin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi>tick_count.o...
...skipped <pstage/lib>libboost_log.a for lack of <pbin.v2/libs/log/build/darwin-4.2.1/release/link-static/threading-multi>libboost_log.a...
...failed updating 2 targets...
...skipped 7 targets...

我查看了 BOOST 日志安装内容,其中有一些指令,但没有什么明显的。有人给我一些线索吗?我在堆栈溢出或网络上没有发现任何让我觉得我遗漏了什么的东西。不支持的 posix 计时器是一个非常明确的消息...

提前致谢。

最佳答案

此问题已在 r655 中修复。

问题是 Darwin 没有提供 clock_gettime() 的 POSIX 扩展。然而, Darwin 在 mach/mach_time.h 中确实有一个高分辨率的单调时钟,称为 mach_absolute_time()。从 r655 开始,Boost Log 在 Mac OS 上使用此功能。

如果您想轻松安装最新的 Boost 版本,并享受 C++11 的好处,请查看 my custom Portfile .例如,它允许您按如下方式安装 Boost:

sudo port install boost +cxx11 +log +debug +no_single

+log 变量提取最新的 SVN 版本。

关于c++ - 在 OSX 10.7.2 上使用 boost 1.48 boost 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761331/

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