Qt creator交叉编译带图片的程序出现问题,版本4.7
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt creator交叉编译带图片的程序出现问题,版本4.7相关的知识,希望对你有一定的参考价值。
:: warning: libts-1.0.so.0, needed by /opt/Qt4.7/lib/libQtGui.so, not found (try using -rpath or -rpath-link)
:: warning: libpng14.so.14, needed by /opt/Qt4.7/lib/libQtGui.so, not found (try using -rpath or -rpath-link)
:: warning: libz.so.1, needed by /opt/Qt4.7/lib/libQtGui.so, not found (try using -rpath or -rpath-link)
出现好多类似这样的;
/opt/Qt4.7/lib/libQtGui.so:: error: undefined reference to `png_get_tRNS@PNG14_0'
/opt/Qt4.7/lib/libQtGui.so:: error: undefined reference to `png_set_bgr@PNG14_0'
/opt/Qt4.7/lib/libQtGui.so:: error: undefined reference to `png_set_packing@PNG14_0'
/opt/Qt4.7/lib/libQtGui.so:: error: undefined reference to `png_destroy_read_struct@PNG14_0'
/opt/Qt4.7/lib/libQtCore.so:: error: undefined reference to `uncompress'
:: error: collect2: ld returned 1 exit status
设置应该是没错的.
我以为是缺少那几个库文件,但是去网上搜没看到那几个库文件啊,libpng14.so.14,libz.so.1,libts-1.0.so.0都没有.
我的/Qt4.7/mkspecs/qws/linux-arm-g++/qmake.conf是这样子的:
#
# qmake configuration for building with arm-linux-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = arm-linux-gcc -lts -lpng
QMAKE_CXX = arm-linux-g++ -lts -lpng
QMAKE_LINK = arm-linux-g++ -lts -lpng
QMAKE_LINK_SHLIB = arm-linux-g++ -lts -lpng
# modifications to linux.conf
QMAKE_AR = arm-linux-ar cqs
QMAKE_OBJCOPY = arm-linux-objcopy
QMAKE_STRIP = arm-linux-strip
load(qt_config)
我不知道该怎么改路径链接.
求各位大神相助啊.
另外你使是用 arm-linux-gcc 编译程序, 需要保证 QT 下的 libQtGui.so 库也是用 arm-linux-gcc 编译的, 否则编译链接会出问题
Qt creator 如何设置静态编译
Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库: 1.将C:\Qt\2010.05\qt\mkspecs\win32-g++文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc 改为 QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"-L指定一下路径,防止用到vc的头文件选择开源:O;选择license:y; 3.上一条命令运行成功后再输入命令: mingw32-make sub-src等1 ~3 小时可能就运行完了 完成后就ok了。。。 参考技术A Qt默认的编译方式是动态编译的,但是有时候编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:1.将C:\Qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
改为
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"
-L指定一下路径,防止用到vc的头文件
选择开源:O;选择license:y;
3.上一条命令运行成功后再输入命令: mingw32-make sub-src
等1 ~3 小时可能就运行完了 完成后就可以了。
以上是关于Qt creator交叉编译带图片的程序出现问题,版本4.7的主要内容,如果未能解决你的问题,请参考以下文章
嵌入式V3s交叉编译 tslib和QT4.8.7,并使用Qt Creator编译项目