当前位置:编程学习 > wap >>

Red Hat 企业版6.2中编译安装Qt4.8.5后再回到Qt目录中,进入/tools/qvfb中gmake出现以下错误是怎么回事?

有懂的人给看看是怎么回事,急求高手解答。错误如下:.obj/release-shared/qanimationwriter.o: In function `QAnimationWriter::QAnimationWriter(QString const&, char const*)':
qanimationwriter.cpp:(.text+0x9ec): undefined reference to `png_create_write_struct'
qanimationwriter.cpp:(.text+0x9f7): undefined reference to `png_create_info_struct'
qanimationwriter.cpp:(.text+0xa0d): undefined reference to `png_set_compression_level'
qanimationwriter.cpp:(.text+0xa2c): undefined reference to `png_set_write_fn'
.obj/release-shared/qanimationwriter.o: In function `QAnimationWriterMNG::setImage(QImage const&)':
qanimationwriter.cpp:(.text._ZN19QAnimationWriterMNG8setImageERK6QImage[QAnimationWriterMNG::setImage(QImage const&)]+0xb6): undefined reference to `png_write_chunk'
.obj/release-shared/qanimationwriter.o: In function `QAnimationWriterMNG::write(png_struct_def*, unsigned char*, unsigned int)':
qanimationwriter.cpp:(.text._ZN19QAnimationWriterMNG5writeEP14png_struct_defPhj[QAnimationWriterMNG::write(png_struct_def*, unsigned char*, unsigned int)]+0xd): undefined reference to `png_get_io_ptr' --------------------编程问答-------------------- undefined reference to `png_create_write_struct,这个不很明显的提示嘛,没有定义呗 --------------------编程问答-------------------- 有可能png_create_write_struct是你外部库定义的,没有把它加入了工程中。 --------------------编程问答--------------------
引用 1 楼 LazyDreamHunter 的回复:
undefined reference to `png_create_write_struct,这个不很明显的提示嘛,没有定义呗

但是在qanimationwriter.cpp里面已经定义了的,而且qanimationwriter.cpp里面也包含了<png.h>,libpng这个库也已经安装了的,还是会出现同样的问题,不知道为什么,你再给解释解释吗?期待哦 --------------------编程问答--------------------
引用 2 楼 LazyDreamHunter 的回复:
有可能png_create_write_struct是你外部库定义的,没有把它加入了工程中。

但是在qanimationwriter.cpp里面已经定义了的,而且qanimationwriter.cpp里面也包含了<png.h>,libpng这个库也已经安装了的,还是会出现同样的问题,不知道为什么,你再给解释解释吗?期待哦 --------------------编程问答-------------------- 你是怎么安装libpng的,问题可能出在这里 --------------------编程问答--------------------
引用 5 楼 LazyDreamHunter 的回复:
你是怎么安装libpng的,问题可能出在这里

把Linux的.iso文件挂载到虚拟机中然后找到安装包后,点击安装包安装的,有问题吗?在linux系统中使用rpm -qi libpng命令查询已经显示安装了,问题会出在哪呢?求解释,你给看看是怎么回事,谢谢! --------------------编程问答-------------------- 编译的时候,你的libpng库加到项目中了没有 --------------------编程问答--------------------
引用 7 楼 LazyDreamHunter 的回复:
编译的时候,你的libpng库加到项目中了没有

我也不知道,我就是把libpng库安装了,之后就没管它了,直接编译的,这样是不是就没把libpng库加到项目里呢?这个要怎样加到项目里面呢?使用什么命令?求指导,谢谢! --------------------编程问答-------------------- LIBS += $${PWD}/chwidget/libchwidgetd.a通过在.pro里面引入库 --------------------编程问答--------------------
引用 9 楼 LazyDreamHunter 的回复:
LIBS += $${PWD}/chwidget/libchwidgetd.a通过在.pro里面引入库

你好,你说的这个 LIBS += $${PWD}/chwidget/libchwidgetd.a 是什么意思?这里面的那个PWD指的是那个目录?还有这个要加到qvfb.pro里面的吗?求指导,谢谢! --------------------编程问答-------------------- 当前应用程序目录,这个是我的一个例子,只是供你参考的, 恩,你的目录

LIBS PWD都是系统宏变量,这样编译器就会从这些目录去找对应的库 --------------------编程问答-------------------- $${PWD}表示当前应用程序目录 --------------------编程问答--------------------
引用 11 楼 LazyDreamHunter 的回复:
当前应用程序目录,这个是我的一个例子,只是供你参考的, 恩,你的目录

LIBS PWD都是系统宏变量,这样编译器就会从这些目录去找对应的库

就是那个libpng的安装目录吗?我的在安装目录下面没有/chwidget/libchwidgetd.a 这些内容,不知道怎么回事,还有我的在qvfb.pro中包含有下面的内容,你给看看是怎么回事,我感觉好像libpng库已经包含到工程里面了,QT_SOURCE_TREE = qt解压文件的目录(也就是编译后的目录,即进入到tools/qvfb的上一级目录),这个在qvfb.pro的工程中已经说明了:
contains(QT_CONFIG, system-png) {
        LIBS += -lpng
} else {
        INCLUDEPATH     += $$[QT_SOURCE_TREE]/src/3rdpartybpng
}
contains(QT_CONFIG, system-zlib) {
        LIBS += -lz
} else {
        INCLUDEPATH     += $$[QT_SOURCE_TREE]/src/3rdparty/zlib
}
你给看看是怎么回事,谢谢了!!! --------------------编程问答-------------------- 晕,/chwidget/libchwidgetd.a 这个是我自自写的一个库,你当然没有啊,我的意思是,undefined reference to `png_create_write_struct'

你看看这个是在那个文件里,再在.pro,把这个文件或库包含进来,这样就不会报错了,

给你方法,要知道变通,不要给你1 + 1 = 2,就不会1 + 2 = ?了
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,