libjpeg-turbo 命令行编译脚本(MinGW/MSVC/linux)

20 篇文章 7 订阅

libjpeg-turbo用CMAKE命令行编译还是很方便的
编译libjpeg-turbo需要NASM支持,编译前请下载并正确安装。

mkdir build
cd build
# 生成Makefile
cmake -G "MinGW Makefiles" \
	-DCMAKE_BUILD_TYPE=RELEASE \
	-DCMAKE_DEBUG_POSTFIX=_d \
	-DCMAKE_C_FLAGS=-m64 \
	-DCMAKE_INSTALL_PREFIX=%安装路径% \
	..
# 编译并安装到指定的路径
make install -j8

编译libjpeg-turbo 主要的一些可选项:

ENABLE_STATIC=FALSE 不编译静态库(默认为TRUE)
ENABLE_SHARED=FALSE 不编译动态库(默认为TRUE)
WITH_SIMD=FALSE 不支持SIMD指令(默认为TRUE),如果在虚拟机下编译,此选项要置为OFF

MinGW

完整脚本(build_jpeg_turbo_gcc.bat),该脚本自动判断当前gcc编译器的能力编译32/64位版本,执行脚本时如果带 DEBUG参数则编译DEBUG版,如:build_jpeg_turbo_gcc DEBUG,否则默认编译RELEASE版:

@rem 根据%%1参数 编译DEBUG|RELEASE版本,默认RELEASE
@echo off 
echo build jpeg-turbo by MinGW
rem 判断是否安装了MinGW编译器,如果没有则报错退出
where gcc
if errorlevel 1 (
	echo MinGW/gcc NOT FOUND.
	exit -1
)
echo MinGW/gcc found.
rem 判断是否安装了cmake,如果没有则报错退出
where cmake
if errorlevel 1 (
	echo cmake NOT FOUND.
	echo download from http://cmake.org/ ,extract to disk 
	echo add installation path to environment variable PATH
	pause
	exit -1
)
echo cmake found.
rem 判断是否安装了nasm,如果没有则报错退出
where nasm
if errorlevel 1 (
	echo nasm NOT FOUND.
	echo download from https://www.nasm.us/ ,extract to disk 
	echo add installation path to environment variable PATH, version above 2.13.03 required.
	pause
	exit -1
)
echo nasm found.
set sh_folder=%~dp0
rem 定义编译的版本类型(DEBUG|RELEASE)
set build_type=RELEASE
rem 如果输入参数1为"DEBUG"(不区分大小写)则编译DEBUG版本
if /I "%1" == "DEBUG" ( set build_type=DEBUG) 
echo build_type=%build_type%

set source_folder=libjpeg-turbo-1.5.90
if not exist %source_folder% (
	echo not found source folder: %source_folder%,please unzip %source_folder%.zip in current folder
	pause
	exit -1
	)
pushd %sh_folder%\%source_folder%
rem 判断是否能编译64位程序
gcc --version |findstr "sjlj seh"
if errorlevel 1 (
	echo unsupported x86_64 build
	)else call:gcc_x86_64
	
rem 判断是否能编译32位程序
gcc --version |findstr "sjlj dwarf"
if errorlevel 1 (
	echo unsupported x86 build	
	)else call:gcc_x86

goto :end
:gcc_x86
echo build x86 use MinGW 
if exist build_gcc_x86 rmdir build_gcc_x86 /s/q
mkdir build_gcc_x86
pushd build_gcc_x86
rem gcc SJLJ or DWARF distribution required

cmake -G "MinGW Makefiles" ^
	-DCMAKE_BUILD_TYPE=%build_type% ^
	-DCMAKE_DEBUG_POSTFIX=_d ^
	-DCMAKE_C_FLAGS=-m32 ^
	-DCMAKE_INSTALL_PREFIX=%sh_folder%/libjpeg-turbo-windows-gcc-x86 ^
	..
make install -j8
popd
rmdir build_gcc_x86 /s/q
goto:eof

:gcc_x86_64
echo build x86_64 use MinGW 
if exist build_gcc_x86_64 rmdir build_gcc_x86_64 /s/q
mkdir build_gcc_x86_64
pushd build_gcc_x86_64
rem gcc SJLJ or SEH distribution required

cmake -G "MinGW Makefiles" ^
	-DCMAKE_BUILD_TYPE=%build_type% ^
	-DCMAKE_DEBUG_POSTFIX=_d ^
	-DCMAKE_C_FLAGS=-m64 ^
	-DCMAKE_INSTALL_PREFIX=%sh_folder%/libjpeg-turbo-windows-gcc-x86_64 ^
	..
make install -j8
popd
rmdir build_gcc_x86_64 /s/q
goto:eof

:end
popd

build_jpeg_turbo_gcc.bat在gitee仓库的位置:
https://gitee.com/l0km/jpegwrapper/blob/master/dependencies/build_jpeg_turbo_gcc.bat

MSVC

MSVC编译脚本参见gitee仓库:
https://gitee.com/l0km/jpegwrapper/blob/master/dependencies/build_jpeg_turbo_msvc.bat

该脚本可以一次性自动编译生成32/64位以及/MT /MD的所有4版本(RELEASE)
这个目录下可以找到已经编译好的libjpeg-turbo的所有windows版本
https://gitee.com/l0km/jpegwrapper/blob/master/dependencies

执行该文件夹下的all_build_jpeg_turbo_msvc.bat,可以一次编译编译出debug/release版本。

Linux

linux下编译libjpeg-turbo的脚本:
https://gitee.com/l0km/jpegwrapper/blob/master/dependencies/build_jpeg_turbo.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10km

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值