Boost logo

Boost :

Subject: [boost] linker error in 1.66 rc1 (regression from 1.65.1)
From: Mark Incley (mark.incley_at_[hidden])
Date: 2017-12-12 18:04:22


Hi,

Using Visual Studio 2017 15.5, the following minimal test case causes a
linker error with Boost 1.66 RC1 but builds fine with 1.65.1:

Produces...

1>------ Build started: Project: aZ80, Configuration: Debug Win32 ------
1>libboost_timer-vc141-mt-gd-x32-1_66.lib(cpu_timer.obj) : error LNK2005:
"public: static class boost::chrono::time_point<class
boost::chrono::steady_clock,class boost::chrono::duration<__int64,class
boost::ratio<1,1000000000> > > __cdecl
boost::chrono::steady_clock::now(void)"
(?now_at_steady_clock_at_chrono@boost@@SA?AV?$time_point_at_Vsteady_clock_at_chrono@boost@@V?$duration@_JV?$ratio@$00$0DLJKMKAA@@boost@@@23@@23_at_XZ)
already defined in libboost_chrono-vc141-mt-gd-x32-1_66.lib(chrono.obj)
1>libboost_timer-vc141-mt-gd-x32-1_66.lib(cpu_timer.obj) : error LNK2005:
"double __cdecl boost::chrono::chrono_detail::get_nanosecs_per_tic(void)"
(?get_nanosecs_per_tic_at_chrono_detail_at_chrono@boost@@YANXZ) already defined in
libboost_chrono-vc141-mt-gd-x32-1_66.lib(chrono.obj)
1>C:\Projects\aZ80\vs\Debug\aZ80.exe : fatal error LNK1169: one or more
multiply defined symbols found

Swapping the order of the includes appears to workaround the problem.

Mark.

--
Sent from: http://boost.2283326.n4.nabble.com/Boost-Dev-f2600599.html

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk