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!
On Fri, 29 Jul 2022, William wrote:
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
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.
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
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.
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.
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.
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!
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.
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)
Independently reported as now working.