Mac OS 使用asio库
Posted dzqdzq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac OS 使用asio库相关的知识,希望对你有一定的参考价值。
下载地址:http://sourceforge.net/projects/asio/files/asio/1.12.2%20%28Stable%29/
本人下载的版本:asio-1.12.2
1,本人环境:
dengzhongqiangdeMacBook-Pro:asio-1.12.2 dengzhongqiang$ clang -v Apple LLVM version 10.0.0 (clang-1000.10.44.4) Target: x86_64-apple-darwin18.5.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin
2. cd到下载的库目录
dengzhongqiangdeMacBook-Pro:asio-1.12.2 dengzhongqiang$ ./configure checking whether to enable maintainer-specific portions of Makefiles... no checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether UID ‘501‘ is supported by ustar format... yes checking whether GID ‘20‘ is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking build system type... x86_64-apple-darwin18.5.0 checking host system type... x86_64-apple-darwin18.5.0 checking whether make supports the include directive... yes (GNU style) checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking for ranlib... ranlib checking how to run the C++ preprocessor... g++ -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking boost/noncopyable.hpp usability... yes checking boost/noncopyable.hpp presence... yes checking for boost/noncopyable.hpp... yes checking openssl/ssl.h usability... no checking openssl/ssl.h presence... no checking for openssl/ssl.h... no checking whether C++11 is enabled... no checking whether C++14 is enabled... no checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/tests/Makefile config.status: creating src/examples/cpp03/Makefile config.status: creating src/examples/cpp11/Makefile config.status: creating src/examples/cpp14/Makefile config.status: creating src/examples/cpp17/Makefile config.status: executing depfiles commands
3.执行make
dengzhongqiangdeMacBook-Pro:asio-1.12.2 dengzhongqiang$ make Making all in include make[1]: Nothing to be done for `all‘. Making all in src Making all in examples/cpp03 g++ -I./../../../include -g -O2 -ftemplate-depth-256 -o icmp/ping icmp/ping.o Undefined symbols for architecture x86_64: "boost::chrono::steady_clock::now()", referenced from: pinger::start_send() in ping.o asio::detail::timer_queue<asio::detail::chrono_time_traits<boost::chrono::steady_clock, asio::wait_traits<boost::chrono::steady_clock> > >::wait_duration_msec(long) const in ping.o asio::detail::timer_queue<asio::detail::chrono_time_traits<boost::chrono::steady_clock, asio::wait_traits<boost::chrono::steady_clock> > >::wait_duration_usec(long) const in ping.o asio::detail::timer_queue<asio::detail::chrono_time_traits<boost::chrono::steady_clock, asio::wait_traits<boost::chrono::steady_clock> > >::get_ready_timers(asio::detail::op_queue<asio::detail::scheduler_operation>&) in ping.o pinger::handle_receive(unsigned long) in ping.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [icmp/ping] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1
这里执行报错了。因为这个报错: boost::chrono::steady_clock::now()
分析:由于本人没有安装 boost,所以就没有这个api了。
解决办法:
1.安装boost库
brew install boost
然后执行
./configure --with-boost=‘/usr/local/include‘
4.安装asio
make install
以上是关于Mac OS 使用asio库的主要内容,如果未能解决你的问题,请参考以下文章
如何在实时代码应用程序中的Mac OS X上收听特定的文本字符串
使用 opencv_contrib 在 Mac OS 终端中运行 OpenCV