From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Mark Rivers via Tech-talk
Sent: 19 July 2020 20:51
To: '吴煊' <wux at ihep.ac.cn>
Cc: tech-talk at aps.anl.gov
Subject: RE: SteamDevice 2.8.x build on Windows issue
I just built stream 2.8.14 successfully with both Visual Studio 2015 and Visual Studio 2017. I don’t have 2019 installed so I could not test that, but I would be surprised if it failed.
My environment:
OS:Windows 10 x64
base:7.0.4
asyn:4-40
MSVC:2015, 2017 Community
GNU make:4.2.1
Perl64:5.24.3
SCNx8 is defined in inttypes.h for Visual Studio. This is where it is found in all of the inttypes.h files in C:\Program Files (x86)\Windows Kits.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
[2020-07-19 14:46.55] /cygdrive/c/Program Files (x86)/Windows Kits
[rivers.Camaro]
➤ find . -name inttypes.h -exec grep -H SCNx8 {} \;
./10/Include/10.0.10150.0/ucrt/inttypes.h:#define SCNx8 "hhx"
./10/Include/10.0.10150.0/ucrt/inttypes.h:#define SCNxLEAST8 SCNx8
./10/Include/10.0.10150.0/ucrt/inttypes.h:#define SCNxFAST8 SCNx8
./10/Include/10.0.10240.0/ucrt/inttypes.h:#define SCNx8 "hhx"
./10/Include/10.0.10240.0/ucrt/inttypes.h:#define SCNxLEAST8 SCNx8
./10/Include/10.0.10240.0/ucrt/inttypes.h:#define SCNxFAST8 SCNx8
./10/Include/10.0.16299.0/ucrt/inttypes.h:#define SCNx8 "hhx"
./10/Include/10.0.16299.0/ucrt/inttypes.h:#define SCNxLEAST8 SCNx8
./10/Include/10.0.16299.0/ucrt/inttypes.h:#define SCNxFAST8 SCNx8
./10/Include/10.0.17763.0/ucrt/inttypes.h:#define SCNx8 "hhx"
./10/Include/10.0.17763.0/ucrt/inttypes.h:#define SCNxLEAST8 SCNx8
./10/Include/10.0.17763.0/ucrt/inttypes.h:#define SCNxFAST8 SCNx8
I also found that git needed to be installed on Windows to build 2.8.14. For other modules with base 7.0.4 it was sufficient to make “fake” git.bat that just contained:
@echo GSECARS-Build
However, stream actually checks the syntax of the returned string, and that trick fails.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of ?? via Tech-talk
Sent: Sunday, July 19, 2020 8:19 AM
To: tech-talk <tech-talk at aps.anl.gov>
Subject: SteamDevice 2.8.x build on Windows issue
Hi all,
I find that the SteamDevice(from 2.8 to 2.8.14) can not be built on Win7 x64. The error info is :../ChecksumConverter.cc:777:51: error: expected ')' before 'SCNx8'. However the version of 2.7.14 can be built successfully. I've checked
the file ChecksumConverter.cc, there is some difference between them like following:
2.8.x: if (sscanf(input(cursor+2*i), "%2" SCNx8, &inchar) != 1)
2.7.14: if (sscanf(input(cursor+2*i), "%2X", &inchar) != 1)
The software environment I'm using:
OS:Win7 x64
base:3.15.8
asyn:4-38
MSVC:2019 community
GNU make:4.2.1
Strawberry:5.30.1
PS:SteamDevice 2.8.14 is dependency with git, the other versions are not
Cheers,
Xuan