zoukankan      html  css  js  c++  java
  • 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 
  • 相关阅读:
    JavaScript Validator 报错
    JSP项目_Web路径_磁盘物理路径
    TreaponseHeader
    TrequestHeader
    HTML学习笔记1
    SQL文摘:DATE_TRUNC: A SQL Timestamp Function You Can Count On
    SQL文摘:Writing Subqueries in SQL
    Python文摘:Requests (Adavanced Usage)
    Python文摘:Requests
    Python文摘:More About Unicode in Python 2 and 3
  • 原文地址:https://www.cnblogs.com/dzqdzq/p/10710357.html
Copyright © 2011-2022 走看看