2

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があります:

Makefile.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

configure.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の何が問題なのかを誰かが見つけてくれることを願っています。

4

0 に答える 0