1. 下載libjxl-0.11.1.tar.gz
2. 解壓到libjxl-0.11.1目錄
3. libjxl-0.11.1目錄下創(chuàng)建build2目錄
4. 修改deps.sh文件,skcms下載地址已經(jīng)無效
# 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. 如果系統(tǒng)已經(jīng)安裝過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的最新版本)
根據(jù)自己要求配置完成后,make就可以。
如果靜態(tài)編譯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