• 7125阅读
  • 5回复

jpeg 库的问题!!! [复制链接]

上一主题 下一主题
离线youbug
 
只看楼主 倒序阅读 楼主  发表于: 2008-05-15
— 本帖被 XChinux 执行加亮操作(2008-05-16) —
首先我在我的linux 2.4里面装了jpeg库
过程如下:
./configure --prefix=/usr/local/arm/3.4.1/arm-linux --host=arm-linux --enable-shared --enable-static;
修改Makefile:
                                CC= /hao/toolchain/arm-linux/bin/arm-linux-gcc
                 AR= /hao/toolchain/arm-linux/bin/arm-linux-ar rc
                 AR2= /hao/toolchain/arm-linux/bin/arm-linux-ranlib

  make
  make install

装好了过后我可以编译运行v4l的应用程序可以在板子上面采集视频;
我的qtopia-core 4.2.2的安装也选择了(-system-libjpeg);

我在编译程序的步骤如下:
    1。qmake -project
在生成的pro文件里面加入了
           LIBS += -L/usr/local/arm/3.4.1/                     arm-linux/lib -ljpeg
    2。qmake
    3。make
然后出错如下:

  arm-linux-g++ -Wl,-rpath,/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib -o a a.o main.o moc_a.o    -L/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib -ljpeg -L/usr/local/arm/3.4.1/arm-linux/lib -lQtGui -L/tmp/qtopia-core-opensource-src-4.2.2/lib -lQtNetwork -lQtCore -lm -ldl -lpthread
a.o(.text+0xe00): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_std_error(jpeg_error_mgr*)'
a.o(.text+0xe18): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_CreateCompress(jpeg_compress_struct*, int, unsigned int)'
a.o(.text+0xe44): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_set_defaults(jpeg_compress_struct*)'
a.o(.text+0xe54): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_set_quality(jpeg_compress_struct*, int, int)'
a.o(.text+0xe68): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_stdio_dest(jpeg_compress_struct*, _IO_FILE*)'
a.o(.text+0xe74): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_start_compress(jpeg_compress_struct*, int)'
a.o(.text+0xedc): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_write_scanlines(jpeg_compress_struct*, unsigned char**, unsigned int)'
a.o(.text+0xef0): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_finish_compress(jpeg_compress_struct*)'
a.o(.text+0xef8): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_destroy_compress(jpeg_compress_struct*)'
a.o(.text+0xf48): In function `put_image_jpeg(_IO_FILE*, unsigned char*, int, int, int, int)':
: undefined reference to `jpeg_write_scanlines(jpeg_compress_struct*, unsigned char**, unsigned int)'
collect2: ld returned 1 exit status
make: *** [a] Error 1

不知道那个步骤出错了,希望大家给我指点一下,在这里已经瞎忙了好长时间了!!!

离线wjfree
只看该作者 1楼 发表于: 2008-05-16
Makefile发出来看一下
离线youbug
只看该作者 2楼 发表于: 2008-05-17
Makefile 如下:

#############################################################################
# Makefile for building: a
# Generated by qmake (2.01a) (Qt 4.2.2) on: ?? ?? 16 11:01:35 2008
# Project:  a.pro
# Template: app
# Command: /usr/local/Trolltech/QtopiaCore-4.2.2-arm/bin/qmake -unix -o Makefile a.pro
#############################################################################

####### Compiler, tools and options

CC            = arm-linux-gcc
CXX          = arm-linux-g++
LEX          = flex
YACC          = yacc
DEFINES      = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT  $(DEFINES)
CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT  $(DEFINES)
LEXFLAGS      =
YACCFLAGS    = -d
INCPATH      = -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/qws/linux-arm-g++ -I. -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/include/QtCore -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/include/QtCore -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/include/QtNetwork -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/include/QtNetwork -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/include/QtGui -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/include/QtGui -I/usr/local/Trolltech/QtopiaCore-4.2.2-arm/include -I. -I. -I.
LINK          = arm-linux-g++
LFLAGS        = -Wl,-rpath,/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib
LIBS          = $(SUBLIBS)  -L/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib -L/usr/local/lib -ljpeg -lQtGui -L/tmp/qtopia-core-opensource-src-4.2.2/lib -lQtNetwork -lQtCore -lm -ldl -lpthread
AR            = arm-linux-ar cqs
RANLIB        = arm-linux-ranlib
QMAKE        = /usr/local/Trolltech/QtopiaCore-4.2.2-arm/bin/qmake
TAR          = tar -cf
COMPRESS      = gzip -9f
COPY          = cp -f
COPY_FILE    = $(COPY)
COPY_DIR      = $(COPY) -R
INSTALL_FILE  = $(COPY_FILE)
INSTALL_DIR  = $(COPY_DIR)
INSTALL_PROGRAM = $(COPY_FILE)
DEL_FILE      = rm -f
SYMLINK      = ln -sf
DEL_DIR      = rmdir
MOVE          = mv -f
CHK_DIR_EXISTS= test -d
MKDIR        = mkdir -p

####### Output directory

OBJECTS_DIR  = ./

####### Files

SOURCES      = a.cpp \
        main.cpp moc_a.cpp
OBJECTS      = a.o \
        main.o \
        moc_a.o
DIST          = /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/qconfig.pri \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt_functions.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt_config.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/exclusive_builds.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/default_pre.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/release.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/default_post.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/warn_on.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/unix/thread.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/moc.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/resources.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/uic.prf \
        a.pro
QMAKE_TARGET  = a
DESTDIR      =
TARGET        = a

first: all
####### Implicit rules

.SUFFIXES: .o .c .cpp .cc .cxx .C

.cpp.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cc.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.cxx.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.C.o:
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"

.c.o:
    $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"

####### Build rules

all: Makefile $(TARGET)

$(TARGET):  $(OBJECTS) 
    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)

Makefile: a.pro  /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/qws/linux-arm-g++/qmake.conf /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/qconfig.pri \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt_functions.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt_config.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/exclusive_builds.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/default_pre.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/release.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/default_post.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/warn_on.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/unix/thread.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/moc.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/resources.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/uic.prf \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/libQtGui.prl \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/libQtCore.prl \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/libQtNetwork.prl
    $(QMAKE) -unix -o Makefile a.pro
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/qconfig.pri:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt_functions.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt_config.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/exclusive_builds.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/default_pre.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/release.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/default_post.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/warn_on.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/qt.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/unix/thread.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/moc.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/resources.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/mkspecs/features/uic.prf:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/libQtGui.prl:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/libQtCore.prl:
/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/libQtNetwork.prl:
qmake:  FORCE
    @$(QMAKE) -unix -o Makefile a.pro

dist:
    @$(CHK_DIR_EXISTS) .tmp/a1.0.0 || $(MKDIR) .tmp/a1.0.0
    $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/a1.0.0/ && $(COPY_FILE) --parents a.h v4l.h v4l.cpp .tmp/a1.0.0/ && $(COPY_FILE) --parents a.cpp main.cpp .tmp/a1.0.0/ && (cd `dirname .tmp/a1.0.0` && $(TAR) a1.0.0.tar a1.0.0 && $(COMPRESS) a1.0.0.tar) && $(MOVE) `dirname .tmp/a1.0.0`/a1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/a1.0.0


yaccclean:
lexclean:
clean:compiler_clean
    -$(DEL_FILE) $(OBJECTS)
    -$(DEL_FILE) *~ core *.core


####### Sub-libraries

distclean: clean
    -$(DEL_FILE) $(TARGET)
    -$(DEL_FILE) Makefile


/usr/local/Trolltech/QtopiaCore-4.2.2-arm/bin/moc:
    (cd $(QTDIR)/src/tools/moc && $(MAKE))

mocclean: compiler_moc_header_clean compiler_moc_source_clean

mocables: compiler_moc_header_make_all compiler_moc_source_make_all

compiler_moc_header_make_all: moc_a.cpp
compiler_moc_header_clean:
    -$(DEL_FILE) moc_a.cpp
moc_a.cpp: a.h \
        /usr/local/Trolltech/QtopiaCore-4.2.2-arm/bin/moc
    /usr/local/Trolltech/QtopiaCore-4.2.2-arm/bin/moc $(DEFINES) $(INCPATH) a.h -o moc_a.cpp

compiler_rcc_make_all:
compiler_rcc_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
compiler_image_collection_clean:
    -$(DEL_FILE) qmake_image_collection.cpp
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all:
compiler_uic_clean:
compiler_clean: compiler_moc_header_clean compiler_rcc_clean compiler_image_collection_clean compiler_moc_source_clean compiler_uic_clean

####### Compile

a.o: a.cpp v4l.cpp \
        v4l.h \
        a.h
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o a.o a.cpp

main.o: main.cpp a.h
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp

moc_a.o: moc_a.cpp
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_a.o moc_a.cpp

####### Install

install:  FORCE

uninstall:  FORCE

FORCE:
离线shiroki

只看该作者 3楼 发表于: 2008-05-20
从命令行和Makefile里看不出哪儿有问题. 怀疑是你的toolchain里带的jpeg库有问题.
第一个可能是库确实没有包含jpeg的那些函数符号
第二个可能是库还是没有在搜索路径里, 链接的时候没找到.
从命令行看第一个可能性大一点.建议你找个jpegsrc自己交叉编译一个
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线youbug
只看该作者 4楼 发表于: 2008-05-20
那个库是自己交叉编译的!
编译v4l的应用程序没有问题:
如下:#arm-linux-gcc videocap.c -ljpeg (如果没有加-ljpeg也出现类似上面的错误)
   a.out下载到试验箱里面能够采集视频啊!!

不知道具体是怎么回事,是不是有些细节有问题啊?
望高手不吝赐教!!!
离线lknlfy
只看该作者 5楼 发表于: 2011-05-22
我也遇到这个问题,请问解决了没有呢?
兜兜转转,我终于入门了Qt
快速回复
限100 字节
 
上一个 下一个