1. 下载libjxl-0.11.1.tar.gz
2. 解压到libjxl-0.11.1目录
3. libjxl-0.11.1目录下创建build2目录
4. 修改deps.sh文件,skcms下载地址已经无效
# download_github third_party/skcms \
# "https://skia.googlesource.com/skcms/+archive/"
5. 直接下载skcms-b2e6926
git config --global http.proxy 'socks5://127.0.0.1:10808'
git config --global https.proxy 'socks5://127.0.0.1:10808'
git clone https://skia.googlesource.com/skcms
cd skcms
git checkout b2e692629c1fb19342517d7fb61f1cf83d075492
或者直接下载b2e6926
https://skia.googlesource.com/skcms/+archive/b2e692629c1fb19342517d7fb61f1cf83d075492.tar.gz
6. 下载的skcms源码拷贝到libjxl-0.11.1/third_party/skcms
7. 进入build2目录,运行../deps.sh,下载所有的third_party源码
8. 如果系统已经安装过libjxl的其他版本,就把include/jxl目录改名为include/jxl-xxx
9. 修改libjxl-0.11.1\third_party\skcms\skcms.cc文件,不修改编译出错
case CpuType::Baseline:
break;
}
//run(program, context, ops - program, (const char*)src, (char*)dst, n, src_bpp,dst_bpp);
return true;
10.然后运行cmake-gui(cmake的最新版本)
根据自己要求配置完成后,make就可以。
如果静态编译ffmpeg时,需要修改jxl_export.h
define JXL_EXPORT __declspec(dllexport) ---> define JXL_EXPORT
define JXL_EXPORT __declspec(dllimport) ---> define JXL_EXPORT
[ 54%] Linking CXX executable encode_oneshot.exe
lib/libjxl_cms.a(skcms.cc.obj):skcms.cc:(.text+0xe8af): undefined reference to `skcms_private::baseline::run_program(skcms_private::Op const*, void const**, int, char const*, char*, int, unsigned int, unsigned int)'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [encode_oneshot.exe] Error 1
make[1]: *** [CMakeFiles/encode_oneshot.dir/all] Error 2
make: *** [all] Error 2
[ 81%] Linking CXX executable cjxl.exe
../lib/libjxl_cms.a(skcms.cc.obj):skcms.cc:(.text+0xe8af): undefined reference to `skcms_private::baseline::run_program(skcms_private::Op const*, void const**, int, char const*, char*, int, unsigned int, unsigned int)'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [tools/cjxl.exe] Error 1
make[1]: *** [tools/CMakeFiles/cjxl.dir/all] Error 2
make: *** [all] Error 2