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 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@lists.boost.org> wrote:
Send Boost-users mailing list submissions to
        boost-users@lists.boost.org

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@lists.boost.org

You can reach the person managing the list at
        boost-users-owner@lists.boost.org

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@gmail.com>
To: boost-users@lists.boost.org
Subject: [Boost-users] [Boost.Asio] tutorial #1 code does not compile
        (g++)
Message-ID:
        <CAG90r9SPGR=wRUykmftmxTM6oUKbTZYoyat_BR9ufaNpQ0g4Rw@mail.gmail.com>
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@gmail.com>
To: Boost users list <boost-users@lists.boost.org>
Cc: Andrew McFarlane <andrew.mcfarlane52@gmail.com>
Subject: Re: [Boost-users] [Boost.Asio] tutorial #1 code does not
        compile (g++)
Message-ID:
        <CA+EzHGdAnjYQZgqqhKuz2Rd7p9th+0PLKtB_puc5=UHZWz9jPQ@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"

On Tue, Jan 28, 2020 at 5:41 PM Andrew McFarlane via Boost-users
<boost-users@lists.boost.org> 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@gmail.com>
To: Vinnie Falco <vinnie.falco@gmail.com>
Cc: Boost users list <boost-users@lists.boost.org>
Subject: Re: [Boost-users] [Boost.Asio] tutorial #1 code does not
        compile (g++)
Message-ID:
        <CAG90r9SDUZw0pRYXXTFSRjjXD09JXf4rAm6KTmTGAk5dxwWZXQ@mail.gmail.com>
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@gmail.com> wrote:

> On Tue, Jan 28, 2020 at 5:41 PM Andrew McFarlane via Boost-users
> <boost-users@lists.boost.org> 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@gmail.com>
To: boost-users@lists.boost.org
Subject: Re: [Boost-users] [Boost.Asio] tutorial #1 code does not
        compile (g++)
Message-ID:
        <CALvx3hY6kzY3E6jb-sLDTKkO8xsDMMw9PASFfhRGKxfY1TL91Q@mail.gmail.com>
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@lists.boost.org> 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@gmail.com>
> wrote:
>
>> On Tue, Jan 28, 2020 at 5:41 PM Andrew McFarlane via Boost-users
>> <boost-users@lists.boost.org> 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@lists.boost.org
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>
--
Richard Hodges
hodges.r@gmail.com
office: +442032898513
home: +376841522
mobile: +376380212
-------------- next part --------------
HTML attachment scrubbed and removed

------------------------------

Subject: Digest Footer

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users


------------------------------

End of Boost-users Digest, Vol 5314, Issue 1
********************************************