Boost logo

Boost Users :

From: Andrew McFarlane (andrew.mcfarlane52_at_[hidden])
Date: 2020-01-29 18:49:28


Hi Richard,

I suspect you and David are both correct; I need to link boost_chrono. I
found here
https://www.boost.org/doc/libs/1_72_0/doc/html/chrono/users_guide.html

"If BOOST_CHRONO_HEADER_ONLY
<https://www.boost.org/doc/libs/1_72_0/doc/html/chrono/reference.html#chrono.reference.cpp0x.chrono_chrono_hpp.conf.header_only>
is
not defined you need to compile it and build the library before use". This
aligns with what you are saying.

However, the command it mentions to use,

>> bjam libs/chrono/build

does not work, even when I am in the boost directory (bjam is not defined).

In addition, adding -lboost_chrono or -L{BOOST_ROOT} does not help my case.
After reading this article about static and dynamic linked libraries
https://medium.com/@dkwok94/the-linking-process-exposed-static-vs-dynamic-libraries-977e92139b5f
I suspect I must append the path of boost_chrono to my LD_LIBRARY_PATH
variable. Am I correct in this thinking? If so, where the heck is
boost_chrono located? I could not find a .a or .so file in libs/chrono/
anywhere. Do I need to build the static/dynamic library myself?
Please advise.

I apologize for the elementary questions; my compiler and Unix knowledge
could be way better, which is something I am working on.

Thanks

*Andrew J. E. McFarlane*
*Cell: (236) 888-1376*

On Tue, Jan 28, 2020 at 11:33 PM <boost-users-request_at_[hidden]>
wrote:

> Send Boost-users mailing list submissions to
> boost-users_at_[hidden]
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
> or, via email, send a message with subject or body 'help' to
> boost-users-request_at_[hidden]
>
> You can reach the person managing the list at
> boost-users-owner_at_[hidden]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Boost-users digest..."
>
>
> Today's Topics:
>
> 1. [Boost.Asio] tutorial #1 code does not compile (g++)
> (Andrew McFarlane)
> 2. Re: [Boost.Asio] tutorial #1 code does not compile (g++)
> (Vinnie Falco)
> 3. Re: [Boost.Asio] tutorial #1 code does not compile (g++)
> (Andrew McFarlane)
> 4. Re: [Boost.Asio] tutorial #1 code does not compile (g++)
> (Richard Hodges)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 28 Jan 2020 17:14:58 -0800
> From: Andrew McFarlane <andrew.mcfarlane52_at_[hidden]>
> To: boost-users_at_[hidden]
> Subject: [Boost-users] [Boost.Asio] tutorial #1 code does not compile
> (g++)
> Message-ID:
> <CAG90r9SPGR=
> wRUykmftmxTM6oUKbTZYoyat_BR9ufaNpQ0g4Rw_at_[hidden]>
> Content-Type: text/plain; charset="utf-8"
>
> Hi All,
>
> I am attempting to get acquainted with C++ multithreaded network
> programming. I have a background in such topics within Java but considering
> how different C++ is, I am starting from ground zero.
>
> I have copied the code from tutorial #1 into my IDE, Timer.1: Using a timer
> synchronously:
>
> https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/tutorial/tuttimer1.html
> (follow
> the link for code).
>
> When I tried to compile this (using g++) with the following command:
>
> g++ -v -I${BOOST_ROOT} -I. -o main main.cpp
> (BOOST_ROOT is where I have boost installed), I get the following output:
>
> Undefined symbols for architecture x86_64:
>
> "boost::chrono::steady_clock::now()", referenced from:
>
> boost::asio::detail::chrono_time_traits<boost::chrono::steady_clock,
> boost::asio::wait_traits<boost::chrono::steady_clock> >::now() in
> main-c86634.o
>
> ld: symbol(s) not found for architecture x86_64
>
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> Note this is the non-verbose output (I would rather not post the verbose
> output, as I am trying to keep this post short).
>
> I did some digging of my own on Boost's steady_timer documentation and
> tried to follow that style, as you can find here:
>
> https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/reference/steady_timer.html
> In other words, I replace the two-parameter boost::asio::steady_timer ctor
> call with a single-parameter ctor call in which I pass an io_context,
> followed by
> t.expires_after(std::chrono::seconds(5));
>
> This generated another compiler error, this one to do with 'no viable
> conversion'. See here:
>
> main.cpp:10:21: error: no viable conversion from 'std::chrono::seconds'
> (aka
>
> 'duration<long long>') to 'const
>
> boost::asio::basic_waitable_timer<boost::chrono::steady_clock,
>
> boost::asio::wait_traits<boost::chrono::steady_clock>,
>
> boost::asio::executor>::duration' (aka 'const duration<long long,
>
> ratio<(1L), (1000000000L)> >')
>
> t.expires_after(std::chrono::seconds(5));
> Again, there is more output that I have omitted for brevity. If anyone
> would like to see the rest of the output, I will gladly supply it.
>
> The bottom line is I am not sure what the problem is, or why I am having to
> debug tutorial code in the first place. This should be relatively simple to
> "plug & play", should it not? Does this have to do with my compiler? BTW, I
> am running Mac OS X.
>
> Thanks in advance for the help.
>
> Sincerely,
>
> *AJ*
> -------------- next part --------------
> HTML attachment scrubbed and removed
>
> ------------------------------
>
> Message: 2
> Date: Tue, 28 Jan 2020 18:04:31 -0800
> From: Vinnie Falco <vinnie.falco_at_[hidden]>
> To: Boost users list <boost-users_at_[hidden]>
> Cc: Andrew McFarlane <andrew.mcfarlane52_at_[hidden]>
> Subject: Re: [Boost-users] [Boost.Asio] tutorial #1 code does not
> compile (g++)
> Message-ID:
> <CA+EzHGdAnjYQZgqqhKuz2Rd7p9th+0PLKtB_puc5=
> UHZWz9jPQ_at_[hidden]>
> Content-Type: text/plain; charset="UTF-8"
>
> On Tue, Jan 28, 2020 at 5:41 PM Andrew McFarlane via Boost-users
> <boost-users_at_[hidden]> wrote:
> > I have copied the code from tutorial #1 into my IDE,
> > Timer.1: Using a timer synchronously: >
> https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/tutorial/tuttimer1.html
>
> You're using the example code from Boost 1.72.0. Are you also using
> the asio headers from Boost 1.72.0? Or do you have an older version of
> Boost installed (say, the one that comes with your OS distribution)?
>
> Thanks
>
>
> ------------------------------
>
> Message: 3
> Date: Tue, 28 Jan 2020 23:26:12 -0800
> From: Andrew McFarlane <andrew.mcfarlane52_at_[hidden]>
> To: Vinnie Falco <vinnie.falco_at_[hidden]>
> Cc: Boost users list <boost-users_at_[hidden]>
> Subject: Re: [Boost-users] [Boost.Asio] tutorial #1 code does not
> compile (g++)
> Message-ID:
> <
> CAG90r9SDUZw0pRYXXTFSRjjXD09JXf4rAm6KTmTGAk5dxwWZXQ_at_[hidden]>
> Content-Type: text/plain; charset="utf-8"
>
> Your instinct was right, I was using Boost 1.71.0, though replacing that
> version with 1.72.0 has not fixed the issue. I am getting the same error
> message as before in both cases.
>
> -AJ
>
>
> On Tue, Jan 28, 2020 at 6:04 PM Vinnie Falco <vinnie.falco_at_[hidden]>
> wrote:
>
> > On Tue, Jan 28, 2020 at 5:41 PM Andrew McFarlane via Boost-users
> > <boost-users_at_[hidden]> wrote:
> > > I have copied the code from tutorial #1 into my IDE,
> > > Timer.1: Using a timer synchronously: >
> >
> https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/tutorial/tuttimer1.html
> >
> > You're using the example code from Boost 1.72.0. Are you also using
> > the asio headers from Boost 1.72.0? Or do you have an older version of
> > Boost installed (say, the one that comes with your OS distribution)?
> >
> > Thanks
> >
> -------------- next part --------------
> HTML attachment scrubbed and removed
>
> ------------------------------
>
> Message: 4
> Date: Wed, 29 Jan 2020 08:29:38 +0100
> From: Richard Hodges <hodges.r_at_[hidden]>
> To: boost-users_at_[hidden]
> Subject: Re: [Boost-users] [Boost.Asio] tutorial #1 code does not
> compile (g++)
> Message-ID:
> <
> CALvx3hY6kzY3E6jb-sLDTKkO8xsDMMw9PASFfhRGKxfY1TL91Q_at_[hidden]>
> Content-Type: text/plain; charset="utf-8"
>
> Don?t you need to add -lboost_chrono to the gcc command line?
>
> Gcc does not do automatic linker comment insertion.
>
> On Wed, 29 Jan 2020 at 08:26, Andrew McFarlane via Boost-users <
> boost-users_at_[hidden]> wrote:
>
> >
> > Your instinct was right, I was using Boost 1.71.0, though replacing that
> > version with 1.72.0 has not fixed the issue. I am getting the same error
> > message as before in both cases.
> >
> > -AJ
> >
> >
> > On Tue, Jan 28, 2020 at 6:04 PM Vinnie Falco <vinnie.falco_at_[hidden]>
> > wrote:
> >
> >> On Tue, Jan 28, 2020 at 5:41 PM Andrew McFarlane via Boost-users
> >> <boost-users_at_[hidden]> wrote:
> >> > I have copied the code from tutorial #1 into my IDE,
> >> > Timer.1: Using a timer synchronously: >
> >>
> https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/tutorial/tuttimer1.html
> >>
> >> You're using the example code from Boost 1.72.0. Are you also using
> >> the asio headers from Boost 1.72.0? Or do you have an older version of
> >> Boost installed (say, the one that comes with your OS distribution)?
> >>
> >> Thanks
> >>
> > _______________________________________________
> > Boost-users mailing list
> > Boost-users_at_[hidden]
> > https://lists.boost.org/mailman/listinfo.cgi/boost-users
> >
> --
> Richard Hodges
> hodges.r_at_[hidden]
> office: +442032898513
> home: +376841522
> mobile: +376380212
> -------------- next part --------------
> HTML attachment scrubbed and removed
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
> ------------------------------
>
> End of Boost-users Digest, Vol 5314, Issue 1
> ********************************************
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net