<div dir="ltr"><div dir="ltr">Hi Christian,<div><br></div><div>>> <i>Which compatibility problems did you find under Win11 ?</i></div><div><br></div><div>None, just the trouble building (:</div><div><br></div><div>>> <i>If you plan to use Linux-like tools more often, I would recommend to use Cygwin.</i></div></div><div dir="ltr"><br></div><div>I think that adds a dependency on a cygwin dll though? If so, that is not appealing.</div><div><br></div><div>>> <i>This removes the debug info:</i><br>>> <i>strip -s *.exe</i><br>>> <i>x86_64-mingw32-strip -s *.exe</i><br></div><div><br></div><div>The first command worked nicely, thank you! Now the exe is the size I expect (~1 MB).</div><div><br></div><div>>> <i>make smartctl-nc.exe</i></div><div><br></div><div>Also worked nicely, thank you.</div><div><br></div><div>>> <i>The make commands for VC16 (VS2019) are now:</i><br>>> <i>make config-vc</i><br></div><div>>> ...</div><div><br></div><div>That command works, but Visual Studio still won't compile: <a href="https://i.imgur.com/nmIAy9h.png">https://i.imgur.com/nmIAy9h.png</a></div><div>I should note I am using Visual Studio 2022. Is there a firm dependency on 2019, or is there something I can change in the project settings to make it work in 2022?</div><div><br></div><div>>> <i>Note that VC is never used for release and CI (<a href="https://builds.smartmontools.org/">https://builds.smartmontools.org/</a>) binaries for Windows. These are always cross-compiled using a Docker image with Linux and Mingw-w64.</i></div><div><i><br></i></div><div>Is there any difference between VC, MSYS2/MINGW64 on Windows, and cross-compiled builds on Linux or is it just a matter of environment preference?</div><div><br></div><div>Thanks for the answers!</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 22, 2022 at 7:45 AM Christian Franke <<a href="mailto:Christian.Franke@t-online.de">Christian.Franke@t-online.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Eaton Zveare wrote:<br>
> Hi, after spending some time getting smartctl compilable on my Windows <br>
> 11 machine, I have run into problems and must ask for some assistance <br>
> in getting a proper build environment set up.<br>
<br>
Which compatibility problems did you find under Win11 ?<br>
<br>
<br>
><br>
> I have read the "Guidelines for Windows" section in the INSTALL file. <br>
> I installed MSYS2, did their 2-step package update commands, and <br>
> installed mingw-w64-x86_64-toolchain. In other words, everything under <br>
> the Installation section here: <a href="https://www.msys2.org/" rel="noreferrer" target="_blank">https://www.msys2.org/</a><br>
><br>
> I then installed these additional packages via this command: /pacman <br>
> -S make autoconf autogen automake/<br>
<br>
If you plan to use Linux-like tools more often, I would recommend to use <br>
Cygwin.<br>
<br>
<br>
> /<br>
> /<br>
> I then copied the latest smartmontools source (the SVN copy) to here: <br>
> /C:\msys64\home\Eaton/<br>
> Start the "MSYS2 MinGW x64" shell and run these commands:<br>
><br>
>  1. /./<a href="http://autogen.sh/" rel="noreferrer" target="_blank">autogen.sh/</a><br>
>  2. /./configure/<br>
>  3. /make/<br>
><br>
> That gets me a smartctl.exe, but it's 6.4 MB, more than 6x larger than <br>
> the official build. I suspect it was compiled in debug mode, but it's <br>
> not clear how to specify release/production mode.<br>
<br>
The configure default is CXXFLAGS='-g -O2', so code is optimized for <br>
release but debug information is still included.<br>
<br>
<br>
> This leads to my questions:<br>
><br>
>  1. How do I compile in release/production mode?<br>
><br>
<br>
This removes the debug info:<br>
strip -s *.exe<br>
x86_64-mingw32-strip -s *.exe<br>
<br>
<br>
>  1. How do I compile the "smartctl-nc" version of the exe?<br>
><br>
<br>
make smartctl-nc.exe<br>
<br>
Both are included in:<br>
make instdir-win32<br>
<br>
<br>
>  1. I also tried getting this working in Visual Studio, but running<br>
>     the /config-vc14/ (or vc16) command does not work. It says /No<br>
>     rule to make target/.<br>
><br>
<br>
Yes, this info is outdated, sorry. Added to my TODO list.<br>
<br>
The make commands for VC16 (VS2019) are now:<br>
make config-vc<br>
make clean-vc<br>
make distclean-vc<br>
make maintainer-clean-vc<br>
<br>
Add "vc=15" to switch to VC15 (VS2017).<br>
<br>
Note that VC is never used for release and CI <br>
(<a href="https://builds.smartmontools.org/" rel="noreferrer" target="_blank">https://builds.smartmontools.org/</a>) binaries for Windows. These are <br>
always cross-compiled using a Docker image with Linux and Mingw-w64.<br>
<br>
Thanks,<br>
Christian<br>
<br>
</blockquote></div></div>