Author: wencoo
Blog:https://wencoo.blog.csdn.net/
Date: 05/12/2023
Email: jianwen056@aliyun.com
Wechat:wencoo824
QQ:1419440391
Details:
目录
正文 或 背景
源码下载
在github下载源码,版本:release 0.17.1 (released 2023-02-26)
源码目录结构
autogen.sh configure.ac libass m4 Makefile_util.am test
Changelog COPYING libass.pc.in MAINTAINERS profile
compare fuzz ltnasm.sh Makefile.am README.md
源码编译
安装依赖
sudo apt-get install dh-autoreconf -y
步骤
$ ./autogen.sh
$ ./configure --prefix=/home/hasx/libass-0.17.1/build
$ make -j4
$ make install
编译完无错误。make install输出:
make[1]: 进入目录“/home/hasx/libass-0.17.1”
/usr/bin/mkdir -p '/home/hasx/libass-0.17.1/build/lib'
/bin/bash ./libtool --mode=install /usr/bin/install -c libass/libass.la '/home/hasx/libass-0.17.1/build/lib'
libtool: install: /usr/bin/install -c libass/.libs/libass.so.9.2.1 /home/hasx/libass-0.17.1/build/lib/libass.so.9.2.1
libtool: install: (cd /home/hasx/libass-0.17.1/build/lib && { ln -s -f libass.so.9.2.1 libass.so.9 || { rm -f libass.so.9 && ln -s libass.so.9.2.1 libass.so.9; }; })
libtool: install: (cd /home/hasx/libass-0.17.1/build/lib && { ln -s -f libass.so.9.2.1 libass.so || { rm -f libass.so && ln -s libass.so.9.2.1 libass.so; }; })
libtool: install: /usr/bin/install -c libass/.libs/libass.lai /home/hasx/libass-0.17.1/build/lib/libass.la
libtool: install: /usr/bin/install -c libass/.libs/libass.a /home/hasx/libass-0.17.1/build/lib/libass.a
libtool: install: chmod 644 /home/hasx/libass-0.17.1/build/lib/libass.a
libtool: install: ranlib /home/hasx/libass-0.17.1/build/lib/libass.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/sbin" ldconfig -n /home/hasx/libass-0.17.1/build/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/hasx/libass-0.17.1/build/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/mkdir -p '/home/hasx/libass-0.17.1/build/include/ass'
/usr/bin/install -c -m 644 libass/ass.h libass/ass_types.h '/home/hasx/libass-0.17.1/build/include/ass'
/usr/bin/mkdir -p '/home/hasx/libass-0.17.1/build/lib/pkgconfig'
/usr/bin/install -c -m 644 libass.pc '/home/hasx/libass-0.17.1/build/lib/pkgconfig'
make[1]: 离开目录“/home/hasx/libass-0.17.1”
build中生成内容如下:
$ tree .
.
├── include
│ └── ass
│ ├── ass.h
│ └── ass_types.h
└── lib
├── libass.a
├── libass.la
├── libass.so -> libass.so.9.2.1
├── libass.so.9 -> libass.so.9.2.1
├── libass.so.9.2.1
└── pkgconfig
└── libass.pc
4 directories, 8 files
运行示例程序
在目录结构中,找到test目录,其中有test.c的示例程序,下面进行编译运行。
创建CMakeLists.txt,内容如下:
cmake_minimum_required(VERSION 3.0)
project(testout)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED true)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "-O3 -Wall -g -ggdb")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
find_package(PkgConfig REQUIRED)
message(STATUS "CMAKE_CURRENT_SOURCE_DIR:" ${CMAKE_CURRENT_SOURCE_DIR})
link_libraries(
${PROJECT_SOURCE_DIR}/../build/lib/libass.a
)
link_directories(
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../build/include
/usr/include/libpng16
)
set(Dir_src
test.c
)
add_executable(${PROJECT_NAME} ${Dir_src} )
target_link_libraries(${PROJECT_NAME}
z
# stdc++ pthread
png
# ass
freetype harfbuzz fribidi fontconfig
# libass.a
m
)
创建build目录,
cd build
cmake ..
make -j4
示例程序编译完成。
gcc的编译选项
gcc test.c `pkg-config --cflags --libs libpng` -I/home/hasx/libass-0.17.1/build/include -lass -o out.a
示例程序功能
读取ass文件,生成图片
./testout 008.png wwwww11110810.ass 5
由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 wencoo824。QQ:1419440391。
参考
技术交流
欢迎加微信,搜索"wencoo824",进行技术交流,备注”博客音视频技术交流“
