On Mon, Aug 11, 2014 at 03:35:13PM +0200, Lars Viklund wrote:
On Mon, Aug 11, 2014 at 10:47:10AM +1200, Gavin Lambert wrote:
On 9/08/2014 02:04, Lars Viklund wrote:
..\..\..\lib/libPrimeGameEngineRelease.a(GameEngine.o):GameEngine.cpp:(.text$_ZN5boost6detail5win3223GetTickCount64emulationEv+0x27): undefined reference to `_InterlockedCompareExchange' ..\..\..\lib/libPrimeGameEngineRelease.a(GameEngine.o):GameEngine.cpp:(.text$_ZN5boost6detail5win3223GetTickCount64emulationEv+0x87): undefined reference to `_InterlockedCompareExchange' [...] In this case, you in your project appear to not be linking in the
On Fri, Aug 08, 2014 at 12:39:18PM +0200, Christoffer Green wrote: library defining InterlockedCompareExchange, which IIRC is located in Kernel32.lib.
That should be a compiler intrinsic, though, not a library call. You may need the /Oi compiler flag and/or some #defines to accomplish this.
This isn't VC++, this is some form of mingw-like as gcc or clang.
I just saw the commit range mentioned by Niall in his post. It appears that Boost.Thread explicitly invokes some sort of pragma and uses internal names for the intrinsic/function instead of letting headers and compilers do their thing. How nice and interoperable... -- Lars Viklund | zao@acc.umu.se