Menu

#671 Migrating project(s) from VS 7.0 to VS 2022 results in unsuccessful compilation

v1.0_(example)
closed-fixed
1
2022-08-13
2022-07-29
William
No

Hello! Appreciate your hard work on this neat and full round software. Here I'm developing a program that targets Windows platform and utilizes this library. For some days now, I've been using ImageMagick, but long process times in MagickResampleImage brings me to use graphicsmagick.

issue description
I'm having issues with compiling latest graphicmagick on Windows 10. Put simply, the issue is 'migrating project(s) from visual studio 7 (2002) to visual studio 2022' breaks successful compiling. Here is detailed description of the process.

trace
dev@DESKTOP-F1VL0I2:~$ cd /mnt/c/Users/dev/Desktop/gm-bug/
dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/gm-bug$ hg clone http://hg.code.sf.net/p/graphicsmagick/code GM
requesting all changes
adding changesets
adding manifests
adding file changes
added 16718 changesets with 121570 changes to 14972 files (+4 heads)
new changesets a75d655b08b1:0a06f497d588
updating to branch default
10580 files updated, 0 files merged, 0 files removed, 0 files unresolved

steps to repeat
I open configure.exe, leave everything as is - defaults. (Note that I've tried also building with different options, I've tried ~4 different combinations of settings. Also no success.)

In parent folder now I have 'VisualDynamicMT.sln'.

I open it. And now Visual Studio prompts:
"Review Project And Solution Changes".
These projects are either not supported or need project behavior impacting modifications to open in this version of Visual Studio.
Projects not displayed either require no changes or will automatically be modified such that behavior is not impacted. For details, see More information.

One-way upgrade
Visual Studio will automatically make functional changes to the following projects in order to open them. You will not be able to open these projects in the version of Visual Studio in which they were originally created.

In the prompt it lists projects that are going to be upgraded:
http://paste.debian.net/hidden/fa7fc238/ (link expires in 90 days)

I click OK and Visual Studio starts to migrate projects.

The migration is successful, but with lots of warnings and messages. No errors.

Here is UpgradeLog.htm file:
https://transfer.sh/w0V8HS/UpgradeLog.htm (link expries in ~10 days (336 hours I think))

Next, inside Visual Studio project I switch build configuration to Release.
Build -> Configuration manager
Switch to Release (from Debug) -> Close

Next, I build the solution.
Build -> Build solution

Build fails after ~4 minutes with 13 errors, 240 warnings.

Errors:
Severity Code Description Project File Line Suppression State
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_tiff_.lib' IM_MOD_cals C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_jpeg_.lib' CORE_tiff C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\tiff\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_jpeg_.lib' UTIL_dcraw C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\dcraw\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_tiff_.lib' IM_MOD_tiff C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_tiff_.lib' IM_MOD_ps3 C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_tiff_.lib' IM_MOD_ps2 C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_tiff_.lib' IM_MOD_ps C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_tiff_.lib' IM_MOD_pdf C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\LINK 1
Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\lib\CORE_RL_jpeg_.lib' IM_MOD_jpeg C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\LINK 1
Error LNK2019 unresolved external symbol JxlDecoderVersion referenced in function _RegisterJXLImage IM_MOD_jxl C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\jxl.obj 1
Error LNK1120 1 unresolved externals IM_MOD_jxl C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\bin\IM_MOD_RL_jxl
.dll 1
Error LNK2019 unresolved external symbol heif_get_version_number referenced in function _RegisterHEIFImage IM_MOD_heif C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\coders\heif.obj 1
Error LNK1120 1 unresolved externals IM_MOD_heif C:\Users\dev\Desktop\gm-bug\GM\VisualMagick\bin\IM_MOD_RL_heif
.dll 1

Warnings:
http://paste.debian.net/hidden/c4a089e8/ (link expires in 90 days)

platform
Windows 10 Pro, 21H2, 19044.1826, Windows Feature Experience Pack 120.2212.4180.0
Intel Core Skylake (2 cores) 3.60GHz, 5GB RAM, inside virtual machine, enough free space and hard drive space
Visual Studio Community 2022 64-Bit - Current version - 17.2.6 with latest libraries for Windows SDK and others

things I've tried that didn't resolve issue
- installing Visual Studio .NET (2002) version. Results in error, this program can't be installed on 64-bit system.
- installing Visual Studio .NET (2002) on Windows 7. Again, same error. Can't be installed on 64-bit operating system.
- modifying linker search directories/includes to target lib folder.
- modified all linker directories to root GM folder, as in a bruteforce hackish way to include every needed file, hoping it will recursively search every directory

things that I'll try
- install Visual Studio .NET (2002) on 32-bit system and compile from there. This seems like sane solution that would work.

As far as I understand, .sln file that gets created by configure.exe uses 'Visual Studio .NET (2002)' program. I acquired it from
archive.org, you can find it by searching for it's sha1 (c4a52ea9a7986a47965c561d9589cc49ddef14d3).
Am i doing something wrong? Am i missing something? Some other people suggested that it may just be like this. That it can be a
hassle to implement 2002 -> 2022 migration inside configure.exe, inside main project that is.

Anyways, thank you in advance for helping! I think that this is a error on my side. But yes, feel free to shine some light on this. Appreciate it.

Keep up your great work and have a lovely day today!

Discussion

  • Bob Friesenhahn

    Bob Friesenhahn - 2022-07-29

    On Fri, 29 Jul 2022, William wrote:

    I'm having issues with compiling latest graphicmagick on Windows 10.
    Put simply, the issue is 'migrating project(s) from visual studio 7
    (2002) to visual studio 2022' breaks successful compiling. Here is
    detailed description of the process.

    I have not tried this yet. The most recent Visual Studio I have tried
    is 2019.

    There is no need to have Visual Studio 7 installed. The configure.exe
    program writes Visual Studio 7 compatible project files. Then when
    opening the project files with modern Visual Studio, it requires an
    upgrade of the project files to the latest/current format. On my tiny
    2-core, 4 thread, PC it takes 20 minutes for Visual Studio 2019 to
    upgrade the project files. But then it works (with warnings about the
    project files).

    I do plan to install the 2022 version to test with.

    The project needs a volunteer who is a capable Windows developer and
    who is sufficiently competent with C++ programming and (who primarily
    uses Windows) to update the configure program to produce project files
    in the format used by Visual Studio 2015 and later.

    There is also a desire to add CMake support as a parallel effort.
    There is already CMake support for compiling GraphicsMagick as
    independent efforts.

    Bob

    Bob Friesenhahn
    bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
    GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
    Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt

     
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-07-29

    I installed Visual Studio 2022 and ran into the same issue with the current sources. However, it does work with older sources. In between times, libjpeg was updated (by someone else) and it seems that the associated project file is producing something unexpected.

    I also see an issue related to JXL. There are no JXL sources in the project so the failure is likely due to something I did wrong.

     
  • William

    William - 2022-07-30

    Hi! I appreciate your work. Since you've mentioned building works with 2019 it seemed logical to try that out. It resulted in errors again, and not being able to compile successfully. I have traced and debugged errors and was able to resolve this with a successful build. That is the end result of today's exploration. I'd still leave this issue open for some time, since I still have to see if library files are working. I'll report that back.

    The whole fat trace is down below. It is lengthy. The summary and short and simple steps are at the bottom, below. I suggest somebody in your team creates a local backup of third party linked logs. Since they will expire.

    platform
    Microsoft Visual Studio Community 2019 Version 16.11.17, with latest C/C++ and Windows SDK packages.
    Available to download from Microsoft developer intranet. You have to have a MS account to able to access.

    trace
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop$ hg clone http://hg.code.sf.net/p/graphicsmagick/code GM
    requesting all changes
    adding changesets
    adding manifests
    adding file changes
    added 16718 changesets with 121570 changes to 14972 files (+4 heads)
    new changesets a75d655b08b1:0a06f497d588
    updating to branch default
    10580 files updated, 0 files merged, 0 files removed, 0 files unresolved

    This time I made a backup copy of source directory, because I'll need it again definitely, so no need to waste internet and request files from repository.

    C:\Users\dev\Desktop\GM\VisualMagick\configure\configure.exe
    Next -> ... -> Finish
    I'm leaving everything as is, using default configuration

    C:\Users\dev\Desktop\GM\VisualMagick\VisualDynamicMT.sln
    Right click -> Open with Visual Studio 2019
    http://paste.debian.net/hidden/c43046e7/ (expires: 2022-10-28 14:54:51)
    OK
    Project is migrating...

    Migration done.

    UpgradeLog.htm: https://transfer.sh/4fRksg/UpgradeLog.htm (expires in ~10 days)
    Again, wholesome of warnings and messages. No errors.

    Closed Visual Studio. Right click -> Open with Visual Studio 2019
    Build -> Configuration manager
    Set it to Release (from Debug). Each project stays at Win32 platform, but 'All' stays at x64, and 'Active solution platform' is also x64. This time@
    I changed it to Win32 and x86 respectively (for 'All'). I suppose this doesn't impact anything, as VS handles that automaticaly, since everything else@
    automatically switches to Win32.

    Build -> Build solution
    Build fails after ~3-4 minutes. 23 Errors, 244 Warnings

    So, building at this system fails in Visual Studio 2019.

    Errors:
    http://paste.debian.net/hidden/4d8f610a/ (expires: 2022-10-28 14:57:25)
    Warnings:
    http://paste.debian.net/hidden/7d9a3f90/ (expires: 2022-10-28 14:58:08)

    I've remembered that for ImageMagick I've needed to download additional VS packages. I've re run VS installer and Modified it. In 'Individual compontents'
    tab I search for 'MFC x64 latest'. I select every package - there are 2 packages (2.33 GB). Now I search for 'ATL x64 latest'. Search returns 3 packages, and they
    are already selected. I download and install.

    Build -> Build solution.
    Build fails pretty soon, almost under a minute. This time 13 Errors, 26 Warnings. Guess that's a score? (Since we lowered Errors and Warnings.)

    Errors:
    http://paste.debian.net/hidden/ea2a2e63/ (expires: 2022-10-28 14:59:05)
    Warnings:
    http://paste.debian.net/hidden/67837890/ (expires: 2022-10-28 14:59:49)

    Analyzing errors I find multiple errors 'cannot open input file', linker is searching for '\GM\VisualMagick\lib\CORE_RL_tiff_.lib' but can not find @
    the file.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_RL_tiff_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_RL_jpeg_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$

    Doesn't return anything. Files are not there. This is error code LNK1181, and we have 9 of them.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ cd ../../;
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM$ find -name "CORE_RL_tiff_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM$ find -name "CORE_RL_jpeg_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM$

    No files at whole source folder, on root position that is. Hmm...

    Save All. Close solution.

    C:\Users\dev\Desktop\GM\VisualMagick\tiff\CORE_tiff_mt_dll.vcproj -> Open with Visual Studio 2019
    Asks me for migration. I say yes. Says I have a file already on disk, owerwrite it? No.
    Switch build configuration from Debug -> Release.
    Build -> Build solution

    Fails immediately. 1 error, 2 warnings

    Error:
    Severity Code Description Project File Line Suppression State
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_DB_jbig_.lib' CORE_tiff C:\Users\dev\Desktop\GM\VisualMagick\tiff\LINK 1
    Warrning:
    Severity Code Description Project File Line Suppression State
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_tiff.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_tiff_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(CORE_tiff) does not match the Linker's OutputFile property value (CORE_RL_tiff_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365

    It looks it depends on jbig lib.
    CORE_jbig_mt_dll.vcproj -> open with VS2019
    Same thing again, migration prompt, owverwrite no.
    Build switch to Release from Debug.
    Build -> Build

    Build started...
    1>------ Build started: Project: CORE_jbig, Configuration: Release Win32 ------
    1>jbig.c
    1>jbig85.c
    1>jbig_ar.c
    1>tstcodec85.c
    1>Generating Code...
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jbig.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_jbig_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(CORE_jbig) does not match the Linker's OutputFile property value (CORE_RL_jbig_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1> Creating library ..\lib\CORE_RL_jbig_.lib and object ..\lib\CORE_RL_jbig_.exp
    1>CORE_jbig_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jbig.dll
    1>Done building project "CORE_jbig_mt_dll.vcxproj".
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    This is a success.
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_DB_jbig_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$

    Whoops, seems like libtiff expect DB rather than RL. Let's switch to Debug and build it.

    Success.
    Build started...
    1>------ Build started: Project: CORE_jbig, Configuration: Debug Win32 ------
    1>jbig.c
    1>jbig85.c
    1>jbig_ar.c
    1>tstcodec85.c
    1>Generating Code...
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jbig.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_DB_jbig_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(CORE_jbig) does not match the Linker's OutputFile property value (CORE_DB_jbig_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1> Creating library ..\lib\CORE_DB_jbig_.lib and object ..\lib\CORE_DB_jbig_.exp
    1>CORE_jbig_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jbig.dll
    1>Done building project "CORE_jbig_mt_dll.vcxproj".
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_DB_jbig_.lib"
    ./CORE_DB_jbig_.lib

    Great, it's there.

    Move to libtiff project. Build it.
    Fails immediately.

    Looks like different error this time. Yay! This time it is 'CORE_DB_jpeg_.lib'.

    Error:
    Severity Code Description Project File Line Suppression State
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_DB_jpeg_.lib' CORE_tiff C:\Users\dev\Desktop\GM\VisualMagick\tiff\LINK 1

    C:\Users\dev\Desktop\GM\VisualMagick\jpeg
    CORE_jpeg_mt_dll.vcproj -> open with VS2019
    Same story. Migration prompt. Owerverite no.
    Build -> Build
    Success.
    Build started...
    1>------ Build started: Project: CORE_jpeg, Configuration: Debug Win32 ------
    1>jaricom.c
    1>jcapimin.c
    1>jcapistd.c
    1>jcarith.c
    1>jccoefct.c
    1>jccolor.c
    1>jcdctmgr.c
    1>jchuff.c
    1>jcinit.c
    1>jcmainct.c
    1>jcmarker.c
    1>jcmaster.c
    1>jcomapi.c
    1>jcparam.c
    1>jcprepct.c
    1>jcsample.c
    1>jctrans.c
    1>jdapimin.c
    1>jdapistd.c
    1>jdarith.c
    1>Generating Code...
    1>Compiling...
    1>jdatadst.c
    1>jdatasrc.c
    1>jdcoefct.c
    1>jdcolor.c
    1>jddctmgr.c
    1>jdhuff.c
    1>jdinput.c
    1>jdmainct.c
    1>jdmarker.c
    1>jdmaster.c
    1>jdmerge.c
    1>jdpostct.c
    1>jdsample.c
    1>jdtrans.c
    1>jerror.c
    1>jfdctflt.c
    1>jfdctfst.c
    1>jfdctint.c
    1>jidctflt.c
    1>jidctfst.c
    1>Generating Code...
    1>Compiling...
    1>jidctint.c
    1>jmemmgr.c
    1>jmemnobs.c
    1>jquant1.c
    1>jquant2.c
    1>jutils.c
    1>transupp.c
    1>Generating Code...
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_DB_jpeg_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(CORE_jpeg) does not match the Linker's OutputFile property value (CORE_DB_jpeg_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>CORE_jpeg_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg.dll
    1>Done building project "CORE_jpeg_mt_dll.vcxproj".
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    It looks this project doesn't create a library. Only 'CORE_jpeg.dll'.
    Project -> Properties -> Configuration type
    Change from 'Dynamic Library (dll)' -> Utility.
    Apply -> OK
    Build.

    Success.
    Build started...
    1>------ Build started: Project: CORE_jpeg, Configuration: Debug Win32 ------
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    No output file names. Something fishy.
    Change from 'Utility' to 'Static library (.lib)'

    Success.

    Build started...
    1>------ Build started: Project: CORE_jpeg, Configuration: Debug Win32 ------
    1>jaricom.c
    1>jcapimin.c
    1>jcapistd.c
    1>jcarith.c
    1>jccoefct.c
    1>jccolor.c
    1>jcdctmgr.c
    1>jchuff.c
    1>jcinit.c
    1>jcmainct.c
    1>jcmarker.c
    1>jcmaster.c
    1>jcomapi.c
    1>jcparam.c
    1>jcprepct.c
    1>jcsample.c
    1>jctrans.c
    1>jdapimin.c
    1>jdapistd.c
    1>jdarith.c
    1>Generating Code...
    1>Compiling...
    1>jdatadst.c
    1>jdatasrc.c
    1>jdcoefct.c
    1>jdcolor.c
    1>jddctmgr.c
    1>jdhuff.c
    1>jdinput.c
    1>jdmainct.c
    1>jdmarker.c
    1>jdmaster.c
    1>jdmerge.c
    1>jdpostct.c
    1>jdsample.c
    1>jdtrans.c
    1>jerror.c
    1>jfdctflt.c
    1>jfdctfst.c
    1>jfdctint.c
    1>jidctflt.c
    1>jidctfst.c
    1>Generating Code...
    1>Compiling...
    1>jidctint.c
    1>jmemmgr.c
    1>jmemnobs.c
    1>jquant1.c
    1>jquant2.c
    1>jutils.c
    1>transupp.c
    1>Generating Code...
    1>CORE_jpeg_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg.lib
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Now I'll just clumsily rename 'CORE_jpeg.lib' to one libtiff asks for -> 'CORE_DB_jpeg_.lib'. Do not attempt this stunt at home.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_jpeg.lib"
    ./CORE_jpeg.lib
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ sha256sum "CORE_jpeg.lib"
    27f8c663f2946db0965edb1dfbd2af34b654772d0b4a821cf35dae5b0f032636 CORE_jpeg.lib
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ mv "CORE_jpeg.lib" "CORE_DB_jpeg_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_DB_jbig_.lib"
    ./CORE_DB_jbig_.lib

    Back to libtiff.

    Build.
    Fails immediately.

    This time with other error. Great.
    Error:
    Severity Code Description Project File Line Suppression State
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_DB_webp_.lib' CORE_tiff C:\Users\dev\Desktop\GM\VisualMagick\tiff\LINK 1

    CORE_DB_webp_.lib is file we're looking for.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_DB_webp_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$

    No file.

    C:\Users\dev\Desktop\GM\VisualMagick\webp
    CORE_webp_mt_dll.vcproj -> open with VS2019
    Same thing, migration prompt, owverfite not.

    Build.

    Success.

    Build started...
    1>------ Build started: Project: CORE_webp, Configuration: Debug Win32 ------
    1>alpha_dec.c
    1>libwebp compiling as DLL export
    1>buffer_dec.c
    1>libwebp compiling as DLL export
    1>frame_dec.c
    1>libwebp compiling as DLL export
    1>idec_dec.c
    1>libwebp compiling as DLL export
    1>io_dec.c
    1>libwebp compiling as DLL export
    1>quant_dec.c
    1>libwebp compiling as DLL export
    1>tree_dec.c
    1>libwebp compiling as DLL export
    1>vp8l_dec.c
    1>libwebp compiling as DLL export
    1>vp8_dec.c
    1>libwebp compiling as DLL export
    1>webp_dec.c
    1>libwebp compiling as DLL export
    1>anim_decode.c
    1>libwebp compiling as DLL export
    1>demux.c
    1>libwebp compiling as DLL export
    1>alpha_processing.c
    1>libwebp compiling as DLL export
    1>alpha_processing_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>alpha_processing_neon.c
    1>libwebp compiling as DLL export
    1>alpha_processing_sse2.c
    1>libwebp compiling as DLL export
    1>alpha_processing_sse41.c
    1>libwebp compiling as DLL export
    1>cost.c
    1>libwebp compiling as DLL export
    1>cost_mips32.c
    1>libwebp compiling as DLL export
    1>cost_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>Generating Code...
    1>Compiling...
    1>cost_neon.c
    1>libwebp compiling as DLL export
    1>cost_sse2.c
    1>libwebp compiling as DLL export
    1>cpu.c
    1>libwebp compiling as DLL export
    1>dec.c
    1>libwebp compiling as DLL export
    1>dec_clip_tables.c
    1>libwebp compiling as DLL export
    1>dec_mips32.c
    1>libwebp compiling as DLL export
    1>dec_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>dec_msa.c
    1>libwebp compiling as DLL export
    1>dec_neon.c
    1>libwebp compiling as DLL export
    1>dec_sse2.c
    1>libwebp compiling as DLL export
    1>dec_sse41.c
    1>libwebp compiling as DLL export
    1>enc.c
    1>libwebp compiling as DLL export
    1>enc_mips32.c
    1>libwebp compiling as DLL export
    1>enc_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>enc_msa.c
    1>libwebp compiling as DLL export
    1>enc_neon.c
    1>libwebp compiling as DLL export
    1>enc_sse2.c
    1>libwebp compiling as DLL export
    1>enc_sse41.c
    1>libwebp compiling as DLL export
    1>filters.c
    1>libwebp compiling as DLL export
    1>filters_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>Generating Code...
    1>Compiling...
    1>filters_msa.c
    1>libwebp compiling as DLL export
    1>filters_neon.c
    1>libwebp compiling as DLL export
    1>filters_sse2.c
    1>libwebp compiling as DLL export
    1>lossless.c
    1>libwebp compiling as DLL export
    1>lossless_enc.c
    1>libwebp compiling as DLL export
    1>lossless_enc_mips32.c
    1>libwebp compiling as DLL export
    1>lossless_enc_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>lossless_enc_msa.c
    1>libwebp compiling as DLL export
    1>lossless_enc_neon.c
    1>libwebp compiling as DLL export
    1>lossless_enc_sse2.c
    1>libwebp compiling as DLL export
    1>lossless_enc_sse41.c
    1>libwebp compiling as DLL export
    1>lossless_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>lossless_msa.c
    1>libwebp compiling as DLL export
    1>lossless_neon.c
    1>libwebp compiling as DLL export
    1>lossless_sse2.c
    1>libwebp compiling as DLL export
    1>rescaler.c
    1>libwebp compiling as DLL export
    1>rescaler_mips32.c
    1>libwebp compiling as DLL export
    1>rescaler_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>rescaler_msa.c
    1>libwebp compiling as DLL export
    1>rescaler_neon.c
    1>libwebp compiling as DLL export
    1>Generating Code...
    1>Compiling...
    1>rescaler_sse2.c
    1>libwebp compiling as DLL export
    1>ssim.c
    1>libwebp compiling as DLL export
    1>ssim_sse2.c
    1>libwebp compiling as DLL export
    1>upsampling.c
    1>libwebp compiling as DLL export
    1>upsampling_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>upsampling_msa.c
    1>libwebp compiling as DLL export
    1>upsampling_neon.c
    1>libwebp compiling as DLL export
    1>upsampling_sse2.c
    1>libwebp compiling as DLL export
    1>upsampling_sse41.c
    1>libwebp compiling as DLL export
    1>yuv.c
    1>libwebp compiling as DLL export
    1>yuv_mips32.c
    1>libwebp compiling as DLL export
    1>yuv_mips_dsp_r2.c
    1>libwebp compiling as DLL export
    1>yuv_neon.c
    1>libwebp compiling as DLL export
    1>yuv_sse2.c
    1>libwebp compiling as DLL export
    1>yuv_sse41.c
    1>libwebp compiling as DLL export
    1>alpha_enc.c
    1>libwebp compiling as DLL export
    1>analysis_enc.c
    1>libwebp compiling as DLL export
    1>backward_references_cost_enc.c
    1>libwebp compiling as DLL export
    1>backward_references_enc.c
    1>libwebp compiling as DLL export
    1>config_enc.c
    1>libwebp compiling as DLL export
    1>Generating Code...
    1>Compiling...
    1>cost_enc.c
    1>libwebp compiling as DLL export
    1>filter_enc.c
    1>libwebp compiling as DLL export
    1>frame_enc.c
    1>libwebp compiling as DLL export
    1>histogram_enc.c
    1>libwebp compiling as DLL export
    1>iterator_enc.c
    1>libwebp compiling as DLL export
    1>near_lossless_enc.c
    1>libwebp compiling as DLL export
    1>picture_csp_enc.c
    1>libwebp compiling as DLL export
    1>picture_enc.c
    1>libwebp compiling as DLL export
    1>picture_psnr_enc.c
    1>libwebp compiling as DLL export
    1>picture_rescale_enc.c
    1>libwebp compiling as DLL export
    1>picture_tools_enc.c
    1>libwebp compiling as DLL export
    1>predictor_enc.c
    1>libwebp compiling as DLL export
    1>quant_enc.c
    1>libwebp compiling as DLL export
    1>syntax_enc.c
    1>libwebp compiling as DLL export
    1>token_enc.c
    1>libwebp compiling as DLL export
    1>tree_enc.c
    1>libwebp compiling as DLL export
    1>vp8l_enc.c
    1>libwebp compiling as DLL export
    1>webp_enc.c
    1>libwebp compiling as DLL export
    1>anim_encode.c
    1>libwebp compiling as DLL export
    1>muxedit.c
    1>libwebp compiling as DLL export
    1>Generating Code...
    1>Compiling...
    1>muxinternal.c
    1>libwebp compiling as DLL export
    1>muxread.c
    1>libwebp compiling as DLL export
    1>bit_reader_utils.c
    1>libwebp compiling as DLL export
    1>bit_writer_utils.c
    1>libwebp compiling as DLL export
    1>color_cache_utils.c
    1>libwebp compiling as DLL export
    1>filters_utils.c
    1>libwebp compiling as DLL export
    1>huffman_encode_utils.c
    1>libwebp compiling as DLL export
    1>huffman_utils.c
    1>libwebp compiling as DLL export
    1>quant_levels_dec_utils.c
    1>libwebp compiling as DLL export
    1>quant_levels_utils.c
    1>libwebp compiling as DLL export
    1>random_utils.c
    1>libwebp compiling as DLL export
    1>rescaler_utils.c
    1>libwebp compiling as DLL export
    1>thread_utils.c
    1>libwebp compiling as DLL export
    1>utils.c
    1>libwebp compiling as DLL export
    1>Generating Code...
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_webp.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_DB_webp_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(CORE_webp) does not match the Linker's OutputFile property value (CORE_DB_webp_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1> Creating library ..\lib\CORE_DB_webp_.lib and object ..\lib\CORE_DB_webp_.exp
    1>CORE_webp_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_webp.dll
    1>Done building project "CORE_webp_mt_dll.vcxproj".
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Great, 'CORE_DB_webp_.lib' was created.

    "CORE_DB_webp_.lib"

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_DB_webp_.lib"
    ./CORE_DB_webp_.lib

    It's here. Awesome.

    Back to libtiff.

    Build.
    Immediately fails.

    Different error. The pattern now is clearly visible. Guess we'll have to do each library one by one.

    Error:
    Severity Code Description Project File Line Suppression State
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_DB_zlib_.lib' CORE_tiff C:\Users\dev\Desktop\GM\VisualMagick\tiff\LINK 1

    This time it's 'CORE_DB_zlib_.lib'.

    C:\Users\dev\Desktop\GM\VisualMagick\zlib
    CORE_zlib_mt_dll.vcproj -> open with VS2019
    Same story. Migration prompt. Overwrite no.

    Build started...
    1>------ Build started: Project: CORE_zlib, Configuration: Debug Win32 ------
    1>adler32.c
    1>compress.c
    1>crc32.c
    1>deflate.c
    1>gzclose.c
    1>gzlib.c
    1>gzread.c
    1>gzwrite.c
    1>infback.c
    1>inffast.c
    1>inflate.c
    1>inftrees.c
    1>trees.c
    1>uncompr.c
    1>zutil.c
    1>Generating Code...
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_zlib.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_DB_zlib_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(CORE_zlib) does not match the Linker's OutputFile property value (CORE_DB_zlib_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1> Creating library ..\lib\CORE_DB_zlib_.lib and object ..\lib\CORE_DB_zlib_.exp
    1>CORE_zlib_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_zlib.dll
    1>Done building project "CORE_zlib_mt_dll.vcxproj".
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Great. CORE_DB_zlib_.lib file created.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_DB_zlib_.lib"
    ./CORE_DB_zlib_.lib

    It's there.

    Back to libtiff.

    Build.
    Fails immediately.

    Whoops. What is this now.

    Error:
    Severity Code Description Project File Line Suppression State
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg.lib' CORE_tiff C:\Users\dev\Desktop\GM\VisualMagick\tiff\LINK 1

    CORE_jpeg.lib

    I think we renamed it from this name?
    history: dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ mv "CORE_jpeg.lib" "CORE_DB_jpeg_.lib"

    Yes we did. Now we're going to clumsily copy it and have both identical files. This is not what one does if one want's to be certain
    of correct program execution/building/development. Anyway.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ cp "CORE_DB_jpeg_.lib" "CORE_jpeg.lib"

    Build.

    Whooooo?

    Build started...
    1>------ Build started: Project: CORE_tiff, Configuration: Release Win32 ------
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_tiff.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_tiff_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(CORE_tiff) does not match the Linker's OutputFile property value (CORE_RL_tiff_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1> Creating library ..\lib\CORE_RL_tiff_.lib and object ..\lib\CORE_RL_tiff_.exp
    1>LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
    1>CORE_tiff_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_tiff.dll
    1>Done building project "CORE_tiff_mt_dll.vcxproj".
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Succeeded. Ok, now let's go back to graphicsmagick project.

    Hopefully we didn't break some things. Hehe, probably we did.

    C:\Users\dev\Desktop\GM\VisualMagick\VisualDynamicMT.sln -> Open with VS2019

    Remember, last time we had 13 Errors, 26 Warnings.

    Let's see the score now.

    Build.
    Fails pretty fast. Under a minute. 7 Errors, 26 Warnings.

    Guess we resolved 6 errors, and warnings are left intact.

    Errors:
    Severity Code Description Project File Line Suppression State
    Error LNK2019 unresolved external symbol heif_get_version_number referenced in function _RegisterHEIFImage IM_MOD_heif C:\Users\dev\Desktop\GM\VisualMagick\coders\heif.obj 1
    Error LNK1120 1 unresolved externals IM_MOD_heif C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_heif
    .dll 1
    Error LNK1120 1 unresolved externals IM_MOD_jxl C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_jxl_.dll 1
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_RL_jpeg_.lib' IM_MOD_jpeg C:\Users\dev\Desktop\GM\VisualMagick\coders\LINK 1
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_RL_jpeg_.lib' CORE_tiff C:\Users\dev\Desktop\GM\VisualMagick\tiff\LINK 1
    Error LNK1181 cannot open input file 'C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_RL_jpeg_.lib' UTIL_dcraw C:\Users\dev\Desktop\GM\VisualMagick\dcraw\LINK 1
    Error LNK2019 unresolved external symbol _JxlDecoderVersion referenced in function _RegisterJXLImage IM_MOD_jxl C:\Users\dev\Desktop\GM\VisualMagick\coders\jxl.obj 1

    Warnings:
    Severity Code Description Project File Line Suppression State
    Warning MSB8012 TargetName(CORE_jbig) does not match the Linker's OutputFile property value (CORE_RL_jbig_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_jbig C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jbig.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_jbig_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_jbig C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_heif.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_heif_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_heif C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_heif) does not match the Linker's OutputFile property value (IM_MOD_RL_heif_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_heif C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_jxl.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_jxl_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jxl C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_jxl) does not match the Linker's OutputFile property value (IM_MOD_RL_jxl_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jxl C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_jpeg_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_jpeg C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(CORE_jpeg) does not match the Linker's OutputFile property value (CORE_RL_jpeg_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_jpeg C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_jpeg.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_jpeg_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jpeg C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_jpeg) does not match the Linker's OutputFile property value (IM_MOD_RL_jpeg_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jpeg C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_tiff.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_tiff_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(CORE_tiff) does not match the Linker's OutputFile property value (CORE_RL_tiff_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_cals.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_cals_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_cals C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_cals) does not match the Linker's OutputFile property value (IM_MOD_RL_cals_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_cals C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\bin\UTIL_dcraw.exe) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\dcraw.exe). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). UTIL_dcraw C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(UTIL_dcraw) does not match the Linker's OutputFile property value (dcraw). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). UTIL_dcraw C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_pdf.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_pdf_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_pdf C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_pdf) does not match the Linker's OutputFile property value (IM_MOD_RL_pdf_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_pdf C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_ps.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_ps_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_ps C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_ps) does not match the Linker's OutputFile property value (IM_MOD_RL_ps_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_ps C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_ps2.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_ps2_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_ps2 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_ps2) does not match the Linker's OutputFile property value (IM_MOD_RL_ps2_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_ps2 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_ps3.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_ps3_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_ps3 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_ps3) does not match the Linker's OutputFile property value (IM_MOD_RL_ps3_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_ps3 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_tiff.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_tiff_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_tiff) does not match the Linker's OutputFile property value (IM_MOD_RL_tiff_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365

    Let's see. Some projects expect 'CORE_RL_jpeg_.lib'. Well, let's build it.

    I'm feeling so inspired so I changed 'Target Name' inside Project -> Properties from '$(ProjectName)' -> '$(ProjectName)_RELEASE'
    so it doesn't overwrite any previous files.

    Let's see.

    Build started...
    1>------ Build started: Project: CORE_jpeg, Configuration: Release Win32 ------
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg_RELEASE.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_jpeg_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(CORE_jpeg_RELEASE) does not match the Linker's OutputFile property value (CORE_RL_jpeg_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
    1>CORE_jpeg_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg_RELEASE.dll
    1>Done building project "CORE_jpeg_mt_dll.vcxproj".
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Great, succes. But whoops, we need .lib rather than .dll. Switch config type to .lib, Same as previous time.

    Build started...
    1>------ Build started: Project: CORE_jpeg, Configuration: Release Win32 ------
    1>jaricom.c
    1>jcapimin.c
    1>jcapistd.c
    1>jcarith.c
    1>jccoefct.c
    1>jccolor.c
    1>jcdctmgr.c
    1>jchuff.c
    1>jcinit.c
    1>jcmainct.c
    1>jcmarker.c
    1>jcmaster.c
    1>jcomapi.c
    1>jcparam.c
    1>jcprepct.c
    1>jcsample.c
    1>jctrans.c
    1>jdapimin.c
    1>jdapistd.c
    1>jdarith.c
    1>Generating Code...
    1>Compiling...
    1>jdatadst.c
    1>jdatasrc.c
    1>jdcoefct.c
    1>jdcolor.c
    1>jddctmgr.c
    1>jdhuff.c
    1>jdinput.c
    1>jdmainct.c
    1>jdmarker.c
    1>jdmaster.c
    1>jdmerge.c
    1>jdpostct.c
    1>jdsample.c
    1>jdtrans.c
    1>jerror.c
    1>jfdctflt.c
    1>jfdctfst.c
    1>jfdctint.c
    1>jidctflt.c
    1>jidctfst.c
    1>Generating Code...
    1>Compiling...
    1>jidctint.c
    1>jmemmgr.c
    1>jmemnobs.c
    1>jquant1.c
    1>jquant2.c
    1>jutils.c
    1>transupp.c
    1>Generating Code...
    1>CORE_jpeg_mt_dll.vcxproj -> C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_jpeg_RELEASE.lib
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Great.

    Now just we need to rename 'CORE_jpeg_RELEASE.lib' to 'CORE_RL_jpeg_.lib'.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_jpeg_RELEASE.lib"
    ./CORE_jpeg_RELEASE.lib
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ echo mv "CORE_jpeg_RELEASE.lib" "CORE_RL_jpeg_.lib"
    mv CORE_jpeg_RELEASE.lib CORE_RL_jpeg_.lib
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ find -name "CORE_RL_jpeg_.lib"
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ mv "CORE_jpeg_RELEASE.
    CORE_jpeg_RELEASE.lib CORE_jpeg_RELEASE.pdb
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/lib$ mv "CORE_jpeg_RELEASE.lib" "CORE_RL_jpeg_.lib"

    Back to graphicsmagick. Let's see.

    Warns me and prompts me that project 'CORE_jpeg' has been modified, which has. Okay let's revert the 'TargetName' back to '$(ProjectName)'.

    I'm going to click 'Ignore' so the project matches default settings.

    Build.
    Fails pretty fast.

    Down to 4 Errors. And 10 Warnings. This is positive.

    Errors:
    Severity Code Description Project File Line Suppression State
    Error LNK1120 1 unresolved externals IM_MOD_jxl C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_jxl_.dll 1
    Error LNK1120 1 unresolved externals IM_MOD_heif C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_heif_.dll 1
    Error LNK2019 unresolved external symbol _heif_get_version_number referenced in function _RegisterHEIFImage IM_MOD_heif C:\Users\dev\Desktop\GM\VisualMagick\coders\heif.obj 1
    Error LNK2019 unresolved external symbol _JxlDecoderVersion referenced in function _RegisterJXLImage IM_MOD_jxl C:\Users\dev\Desktop\GM\VisualMagick\coders\jxl.obj 1

    Warnings:
    Severity Code Description Project File Line Suppression State
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_heif.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_heif_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_heif C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_heif) does not match the Linker's OutputFile property value (IM_MOD_RL_heif_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_heif C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_jxl.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_jxl_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jxl C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_jxl) does not match the Linker's OutputFile property value (IM_MOD_RL_jxl_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jxl C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_jpeg.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_jpeg_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jpeg C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_jpeg) does not match the Linker's OutputFile property value (IM_MOD_RL_jpeg_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jpeg C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\CORE_tiff.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\CORE_RL_tiff_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(CORE_tiff) does not match the Linker's OutputFile property value (CORE_RL_tiff_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). CORE_tiff C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\bin\UTIL_dcraw.exe) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\dcraw.exe). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). UTIL_dcraw C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(UTIL_dcraw) does not match the Linker's OutputFile property value (dcraw). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). UTIL_dcraw C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365

    Now we have some unresolved external symbols. Let's dig in. Let's dig in first into jxl, I like _JxlDecoderVersion string more. It's more pretty.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/coders$ ls | grep "jxl"
    IM_MOD_jxl_mt_dll.vcproj
    IM_MOD_jxl_mt_dll.vcxproj
    IM_MOD_jxl_mt_dll.vcxproj.filters
    IM_MOD_jxl_mt_dll.vcxproj.user

    C:\Users\dev\Desktop\GM\VisualMagick\coders
    IM_MOD_jxl_mt_dll.vcproj -> open with VS2019
    Same story. Migration prompt, overwrite no.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/coders$ grep --line-number -i 'JxlDecoderVersion' ../../cod
    ers/jxl.c
    1123: int encoder_version=(JxlDecoderVersion());

    It looks we lack:

    #if defined(HasJXL)
    #include <jxl decode.h="">
    #include <jxl encode.h="">
    #include <jxl thread_parallel_runner.h=""></jxl></jxl></jxl>

    source files. And HasJXL results in False. So this is not much of importance, maybe.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/gm$ find -name decode.h | grep jxl
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/gm$ find -name encode.h | grep jxl
    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/gm$ find -name thread_parallel_runner.h | grep jxl

    Looks we are lacking source files.

    Let's just then bind JxlDecoderVersion() to a dummy function.

    Internet gives prommising results: https://docs.rs/jpegxl-sys/0.3.4-alpha.0/jpegxl_sys/fn.JxlDecoderVersion.html
    We get "example, version 1.2.3 would return 1002003."

    Let's just use 1002003 and hardcode it.

    Adding: Inside jxl.c add:

    // fix for JxlDecoderVersion(), for graphicsmagick
    int JxlDecoderVersion() {
    return 1002003;
    }

    Save All.

    Back to graphicsmagick.
    Build.
    Fails.

    Great, down to 2 Errors, 4 Warnings.

    Errors:
    Severity Code Description Project File Line Suppression State
    Error LNK2019 unresolved external symbol heif_get_version_number referenced in function _RegisterHEIFImage IM_MOD_heif C:\Users\dev\Desktop\GM\VisualMagick\coders\heif.obj 1
    Error LNK1120 1 unresolved externals IM_MOD_heif C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_heif
    .dll 1

    Warnings:
    Severity Code Description Project File Line Suppression State
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_heif.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_heif_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_heif C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_heif) does not match the Linker's OutputFile property value (IM_MOD_RL_heif_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_heif C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365
    Warning MSB8012 TargetPath(C:\Users\dev\Desktop\GM\VisualMagick\lib\IM_MOD_jxl.dll) does not match the Linker's OutputFile property value (C:\Users\dev\Desktop\GM\VisualMagick\bin\IM_MOD_RL_jxl_.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jxl C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1363
    Warning MSB8012 TargetName(IM_MOD_jxl) does not match the Linker's OutputFile property value (IM_MOD_RL_jxl_). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). IM_MOD_jxl C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets 1365

    Now let's dig in IM_MOD_heif.

    C:\Users\dev\Desktop\GM\VisualMagick\coders
    IM_MOD_heif_mt_dll.vcproj -> Open with VS2019
    Same story. Migration prompt. Overwrite no.

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/GM/VisualMagick/coders$ grep --line-number -i 'heif_get_version_number' ../
    ../coders/heif.c
    539: int encoder_version=heif_get_version_number();

    It uses same code scheme as previous library. Let's search online for some int that we'll hardcode.
    Similar thing here. "https://docs.rs/libheif-sys/1.12.0/libheif_sys/fn.heif_get_version_number.html"
    But no integer.
    Let's hardcode one random.

    // fix for heif_get_version_number(), for graphicsmagick
    int heif_get_version_number() {
    return 1000000;
    }

    Save all.

    Build. But this time it build only heif. Weird. This is my error / weird quirk, I was distracted for a second.

    Close solution. Reopen.

    Build.

    Build started...
    ========== Build: 0 succeeded, 0 failed, 125 up-to-date, 0 skipped ==========

    Build -> Clean solution.

    Build.

    Looks like we got a winner.

    ========== Build: 125 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    Build success log: https://transfer.sh/Slf1yq/vs2019_05_build-succes.txt (expires in ~10 days)

    0 Errors, 242 Warnings

    Warnings:
    http://paste.debian.net/hidden/f6c7dcff/ (expires: 2022-10-28 15:22:32)

    dev@DESKTOP-F1VL0I2:/mnt/c/Users/dev/Desktop/gm/VisualMagick$ for i in $(ls bin); do sha256sum ./bin/$i >> ../../gm-bug/
    SHA256SUMS; done; for i in $(ls lib); do sha256sum ./lib/$i >> ../../gm-bug/SHA256SUMS; done;

    SHA256SUMS: http://paste.debian.net/hidden/ea4e137f/ (expires: 2022-10-28 15:23:02)

    summary

    These were the steps taken to achieve a successful build on this system.

    EDIT:
    - add latest MFC x64 and ATL x64 compontents to Visual Studio (you can find more details in trace above) (I've left this out, mistakenly., this line is the edit)

    build CORE_DB_jbig_.lib
    build CORE_jpeg.lib
    rename "CORE_jpeg.lib" to "CORE_DB_jpeg_.lib"
    build "CORE_DB_webp_.lib"
    build "CORE_DB_zlib_.lib"

    copy "CORE_DB_jpeg_.lib" to "CORE_jpeg.lib"

    At this step libtiff builds successfuly.

    build "CORE_RL_jpeg_.lib"

    add:
    // fix for JxlDecoderVersion(), for graphicsmagick
    int JxlDecoderVersion() {
    return 1002003;
    }
    to jxl.c in GM/coders/
    called by
    1123: int encoder_version=(JxlDecoderVersion());

    add
    // fix for heif_get_version_number(), for graphicsmagick
    int heif_get_version_number() {
    return 1000000;
    }
    to heif.c in GM/coders/
    called by
    539: int encoder_version=heif_get_version_number();

    graphicmagick builds here successfuly now.

    conslusion
    That's it for today. There are other things orbiting my mind, but now I'll have to think about other things. I still didn't test ./bin and ./lib files - are they going to be able to run without errors, are they correct. Note, this may be this my system specific error. So take that into consideration so it doesn't cause you trouble down the way.

    While I would gladly jump in and try do debug and resolve mentioned conflicts regardings configure project and output .sln files, sadly, I have lots of real life obligations that need to be done first.

    Hope that this is helpful for the project. Once more, thanks for your work and have a wonderful day today!

     

    Last edit: William 2022-07-30
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-07-31

    Mercurial changeset 16720:171c0dd24d8a partially addresses issues. In the Visual Studio build, source files for formats not supported are not excluded so they still need to successfully compile. Now the jxl and heif modules will build without warning or error in Visual Studio.

    The issue with JPEG remains. The developer who committed the JPEG updates will not be available to look at this for another week.

     
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-07-31

    The problem seems to be that when libjpeg is built, the link library (".lib") is either not built, or does not use the naming expected by the rest of the code.

    If someone is able to assist with this who is fluent with Visual Studio, it would be greatly appreciated. Otherwise I will wait for the developer who did the JPEG updates to return.

     
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-08-08

    There has been progress on this issue due to Mercurial changesets 16723:d4343d154600 and 16724:9c564d99b50a. We are currently waiting for a sample build of configure.exe. However, in the future it may be better to not provide configure.exe and instead require the user to compile it first from source code.

     
  • William

    William - 2022-08-10

    Dear Bob, latest release builds with no errors and no additional configuration needed at all.

    ========== Build: 125 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

    Using VS 2019.

    Here is the trace. Be sure to check it out.
    http://paste.debian.net/hidden/745bce78/ (expires: 2022-11-08 13:38:17)

    Yes, the JPEG library has some options set different from what is expected in main project, regarding file names and library output types. You can see the renaming that had to be done, up in the first post in 'summary', that was needed.

    Appreciate your work. Hope you have a fantastic day today!

     
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-08-10

    There is now a new pre-built configure.exe program in Mercurial. It would be useful for people to verify that this works for them.

     
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-08-10
    • assigned_to: Bob Friesenhahn
     
  • William

    William - 2022-08-11

    I have repeated all steps as yesterday, including running configure.exe and using default options. Latest changesets result in successful build.

    ========== Build: 125 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== (618 warnings)

     
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-08-13
    • status: open --> closed-fixed
     
  • Bob Friesenhahn

    Bob Friesenhahn - 2022-08-13

    Independently reported as now working.

     

Log in to post a comment.

MongoDB Logo MongoDB