我正在 CentOS 6.2 上构建一个共享库。共享库将构建有一些cpp文件,头文件,c共享库和ffmpeg。共享库用于转换视频。当我像这样使用 g++ 编译时:
g++ DataType.h h264function.h h264function.cpp videoconvert.h videoconvert.cpp stdafx.h stdafx.cpp YV12toRGB.h YV12toRGB.cpp -lMPCtrl -lavcodec -lavformat -lavutil - lhcnetsdk -lPlayCtrl -lpthread -fPIC -shared -o libtest.so
它可以正常工作,并且可以将视频转换为标准h264编码。看起来用于构建库的文件是
很好。但是当我使用自动工具制作库时,它无法正常工作。这是我的 configure.in 和 Makefile.am:
生成文件.am:
prefix=/usr
lib_LTLIBRARIES=libhikvisiontranso.la
libhikvisiontranso_la_SOURCES=stdafx.h stdafx.cpp videoconvert.h videoconvert.cpp
h264function.h h264function.cpp YV12toRGB.h YV12toRGB.cpp DataType.h
libhikvisiontranso_la_LDFLAGS=-avoid-version -shared
libhikvisiontranso_la_LIBADD=-lpthread -lMPCtrl -lhcnetsdk -lPlayCtrl -lavformat - lavcodec -lavutil
ACLOCAL_AMFLAGS= -I m4
配置.in:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
AC_INIT([hikvisiontranso],[1.0], [songxiawuren@gmail.com])
AM_INIT_AUTOMAKE([libhikvisiontranso.so],[1.0])
AC_CONFIG_SRCDIR([DataType.h])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AT_INIT
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
AC_CHECK_HEADERS([inttypes.h limits.h stddef.h stdint.h stdlib.h string.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_INT16_T
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_INT8_T
AC_TYPE_SIZE_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T
# Checks for library functions.
AC_FUNC_MALLOC
AC_PROG_LIBTOOL
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
错误的输出是:
SDL Init
init console=1
Output #0, avi, to '/home/ningge/Desktop/HaikangDvr.avi':
Stream #0.0: Invalid Codec type -1
Height = 576; Width = 704;totalfram=90000
Segmentation fault (core dumped)
右边是:
SDL Init
init console=1
Output #0, avi, to '/home/ningge/Desktop/HaikangDvr.avi':
Stream #0.0: Video: mpeg4, yuv420p, 704x576, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Height = 576; Width = 704;totalfram=90000
CSDLInit goOut
我希望有人可以帮助我找出 automake 有什么问题。