Open HappySeaFox opened 11 months ago
_imp_JxlDecoderCreate
This shouldn't occur for x64-windows-static.
The issue is a little bit more complicated. See https://github.com/libjxl/libjxl/issues/2851. I'm not sure if it's could be fixed on the vcpkg side. The problem is that I need to define JXL_STATIC_DEFINE
in the client app. But even if I define it, the link process fails with missing dependencies like hwy
or brotli
.
The issue is a little bit more complicated. See https://github.com/libjxl/libjxl/issues/2851. I'm not sure if it's could be fixed on the vcpkg side.
@HappySeaFox
We can fix it on vcpkg side by provide an unofficial cmake config.
Then we can use it like (No need to define JXL_STATIC_DEFINE
)
find_package(unofficial-libjxl CONFIG REQUIRED)
target_link_libraries(main PRIVATE unofficial::libjxl::libjxl)
# And for libjxl_threads
target_link_libraries(main PRIVATE unofficial::libjxl::libjxl_threads)
You can refer to brotli
port to see how to achieve this. Only if you are willing to contribute it : )
This port has a pc file
prefix=${pcfiledir}/../..
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libjxl
Description: Loads and saves JPEG XL files
Version: 0.8.2
Libs: "-L${libdir}" -ljxl -lm
Requires: libhwy libbrotlicommon libbrotlienc libbrotlidec lcms2
Cflags: "-I${includedir}" -DJXL_STATIC_DEFINE
Which allow the following usage, and in this way, you don't need to define JXL_STATIC_DEFINE
find_package(PkgConfig REQUIRED)
pkg_check_modules(libjxl REQUIRED IMPORTED_TARGET libjxl)
target_link_libraries(main PRIVATE PkgConfig::libjxl)
# And for libjxl_threads
pkg_check_modules(libjxl_threads REQUIRED IMPORTED_TARGET libjxl_threads)
target_link_libraries(main PRIVATE PkgConfig::libjxl_threads)
Update: It seems there was a bug in pc file. Forget it.
See also #33422 #33390 and https://github.com/libjxl/libjxl/pull/2754
This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 180 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.
Describe the bug
Install libjxl with
x64-windows-static
triplet:Client application:
CMakeLists.txt:
main.c:
Environment
Result:
LNK2019 = unresolved external symbol
Compilation Log
Microsoft (R) Build Engine версии 16.11.2+f32259642 для .NET Framework (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены. Поиск библиотек Поиск F:\projects\git.vcpkg\installed\x64-windows-static\lib\jxl-static.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\MSVCRT.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\OLDNAMES.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\vcruntime.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\ucrt.lib: Поиск F:\projects\git.vcpkg\installed\x64-windows-static\lib\jxl-static.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\MSVCRT.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\OLDNAMES.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\vcruntime.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\ucrt.lib: Поиск F:\projects\git.vcpkg\installed\x64-windows-static\lib\jxl-static.lib: Поиск библиотек завершен Поиск библиотек Поиск F:\projects\git.vcpkg\installed\x64-windows-static\lib\jxl-static.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\MSVCRT.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\OLDNAMES.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\vcruntime.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\ucrt.lib: Поиск библиотек завершен Поиск библиотек Поиск F:\projects\git.vcpkg\installed\x64-windows-static\lib\jxl-static.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\MSVCRT.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\OLDNAMES.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\vcruntime.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\ucrt.lib: Поиск библиотек завершен Поиск библиотек Поиск F:\projects\git.vcpkg\installed\x64-windows-static\lib\jxl-static.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\MSVCRT.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\OLDNAMES.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\vcruntime.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\ucrt.lib: Поиск библиотек завершен Поиск библиотек Поиск F:\projects\git.vcpkg\installed\x64-windows-static\lib\jxl-static.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\kernel32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\user32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\MSVCRT.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\OLDNAMES.lib: Поиск C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64\vcruntime.lib: Поиск C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64\ucrt.lib: Поиск библиотек завершен main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp_JxlDecoderCreate в функции main. [F:\projects\git.libjxl.vcpkg-test\build\libjxl-test.vcxproj] F:\projects\git.libjxl.vcpkg-test\build\Release\libjxl-test.exe : fatal error LNK1120: неразрешенных внешних элементов: 1 [F:\projects\git.libjxl.vcpkg-test\build\libjxl-test.vcxproj]Pkg-config notice
There are pkg-config files for libjxl, but I don't use pkg-config and have no plans to use it for technical reasons.
Question
Am I missing something? Is there a way to import libjxl with
find_library
only?