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

Alanwyq 2013-11-11 07:24:59
有懂的人给看看是怎么回事,急求高手解答。错误如下:.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'
...全文
330 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
RabinSong 2013-11-16
  • 打赏
  • 举报
回复
晕,/chwidget/libchwidgetd.a 这个是我自自写的一个库,你当然没有啊,我的意思是,undefined reference to `png_create_write_struct' 你看看这个是在那个文件里,再在.pro,把这个文件或库包含进来,这样就不会报错了, 给你方法,要知道变通,不要给你1 + 1 = 2,就不会1 + 2 = ?了
Alanwyq 2013-11-16
  • 打赏
  • 举报
回复
引用 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 } 你给看看是怎么回事,谢谢了!!!
RabinSong 2013-11-16
  • 打赏
  • 举报
回复
$${PWD}表示当前应用程序目录
RabinSong 2013-11-16
  • 打赏
  • 举报
回复
当前应用程序目录,这个是我的一个例子,只是供你参考的, 恩,你的目录 LIBS PWD都是系统宏变量,这样编译器就会从这些目录去找对应的库
Alanwyq 2013-11-16
  • 打赏
  • 举报
回复
引用 9 楼 LazyDreamHunter 的回复:
LIBS += $${PWD}/chwidget/libchwidgetd.a通过在.pro里面引入库
你好,你说的这个 LIBS += $${PWD}/chwidget/libchwidgetd.a 是什么意思?这里面的那个PWD指的是那个目录?还有这个要加到qvfb.pro里面的吗?求指导,谢谢!
RabinSong 2013-11-15
  • 打赏
  • 举报
回复
LIBS += $${PWD}/chwidget/libchwidgetd.a通过在.pro里面引入库
Alanwyq 2013-11-15
  • 打赏
  • 举报
回复
引用 7 楼 LazyDreamHunter 的回复:
编译的时候,你的libpng库加到项目中了没有
我也不知道,我就是把libpng库安装了,之后就没管它了,直接编译的,这样是不是就没把libpng库加到项目里呢?这个要怎样加到项目里面呢?使用什么命令?求指导,谢谢!
RabinSong 2013-11-14
  • 打赏
  • 举报
回复
编译的时候,你的libpng库加到项目中了没有
Alanwyq 2013-11-14
  • 打赏
  • 举报
回复
引用 5 楼 LazyDreamHunter 的回复:
你是怎么安装libpng的,问题可能出在这里
把Linux的.iso文件挂载到虚拟机中然后找到安装包后,点击安装包安装的,有问题吗?在linux系统中使用rpm -qi libpng命令查询已经显示安装了,问题会出在哪呢?求解释,你给看看是怎么回事,谢谢!
RabinSong 2013-11-13
  • 打赏
  • 举报
回复
你是怎么安装libpng的,问题可能出在这里
RabinSong 2013-11-12
  • 打赏
  • 举报
回复
有可能png_create_write_struct是你外部库定义的,没有把它加入了工程中。
RabinSong 2013-11-12
  • 打赏
  • 举报
回复
undefined reference to `png_create_write_struct,这个不很明显的提示嘛,没有定义呗
Alanwyq 2013-11-12
  • 打赏
  • 举报
回复
引用 2 楼 LazyDreamHunter 的回复:
有可能png_create_write_struct是你外部库定义的,没有把它加入了工程中。
但是在qanimationwriter.cpp里面已经定义了的,而且qanimationwriter.cpp里面也包含了<png.h>,libpng这个库也已经安装了的,还是会出现同样的问题,不知道为什么,你再给解释解释吗?期待哦
Alanwyq 2013-11-12
  • 打赏
  • 举报
回复
引用 1 楼 LazyDreamHunter 的回复:
undefined reference to `png_create_write_struct,这个不很明显的提示嘛,没有定义呗
但是在qanimationwriter.cpp里面已经定义了的,而且qanimationwriter.cpp里面也包含了<png.h>,libpng这个库也已经安装了的,还是会出现同样的问题,不知道为什么,你再给解释解释吗?期待哦

21,469

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧