QT程序在meego系统上的发布问题

小小爱1990 2011-09-01 01:28:12
写了个qt程序,做成的rpm包在虚拟机上只能用root用户安装运行,原因可能是什么? 而且只会用命令行安装,怎么图形化浏览文件? 一般怎么发布?
...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LeosDing 2012-01-13
  • 打赏
  • 举报
回复
给你个例子,主要是写好 pro 文件,然后qmake,make、make rpm就可以直接打包生成rpm包了,这里需要写好spec文件。

leos@leos-laptop:test-music $ ls -lh
total 30M
-rw-r--r-- 1 leos leos 1.4K 2011-12-29 10:02 ax.pro
drwxr-xr-x 2 leos leos 4.0K 2011-12-30 16:35 build
drwxr-xr-x 3 leos leos 4.0K 2011-12-29 13:14 data
-rw-r--r-- 1 leos leos 29K 2011-12-30 10:59 Makefile
-rw-r--r-- 1 leos leos 26K 2011-12-29 10:02 netmusicDown.png
-rw-r--r-- 1 leos leos 26K 2011-12-29 10:02 netmusic.png
-rwxr-xr-x 1 leos leos 2.4M 2011-12-30 16:36 test-music
-rw-r--r-- 1 leos leos 4.5M 2011-12-29 10:02 test-music-0.1.0.tar.gz
-rw-r--r-- 1 leos leos 3.0K 2011-12-29 18:34 test-music.pro
-rw-r--r-- 1 leos leos 4.3K 2011-12-29 10:02 test-music.qrc
-rw-r--r-- 1 leos leos 1.5K 2011-12-29 17:43 test-music.spec
-rw-r--r-- 1 leos leos 9.8M 2011-12-29 10:02 qrc_test-music.cpp
-rw-r--r-- 1 leos leos 449 2011-12-29 10:02 qrc.sh
drwxr-xr-x 2 leos leos 4.0K 2012-01-04 10:07 src


给你个spec的例子

leos@leos-laptop:test-music $ cat test-music.pro
######################################################################
# Automatically generated by qmake (2.01a) ?? 7? 14 15:30:33 2011
######################################################################

NAME = test-music
VERSION = -0.1.0

TEMPLATE = app
TARGET = $${NAME}
DEPENDPATH += .
INCLUDEPATH += .

OBJECTS_DIR = build
MOC_DIR = build

DISTFILES += data/*.png \
data/wait/*.png \
data/*.db \
data/*.service \
data/*.desktop \
*.png

icon.files = *.png
icon.path = /usr/share/pixmaps
INSTALLS += icon

desktop.files = data/*.desktop
desktop.path = /usr/share/applications/desktop
INSTALLS += desktop

db.files = data/*.db
db.path = /usr/share/$${NAME}/
INSTALLS += db

dbusService.files = data/*.service
dbusService.path = /usr/share/dbus-1/services/
INSTALLS += dbusService

target.path = /usr/bin
INSTALLS += target

QT += network xml sql dbus phonon
unix{
CONFIG += link_pkgconfig
PKGCONFIG += glib-2.0 x11 gstreamer-0.10
LIBS += -lgstinterfaces-0.10
}

# Input
HEADERS += src/app-scene.h \
src/button.h \
src/cate-button.h \
src/category.h \
src/global.h \
src/list.h \
src/play.h \
src/reverse-button.h \
src/view-manager.h \
src/network-xml.h \
src/downloadThread.h \
src/analyzing-xml.h \
src/database.h \
src/list-button.h \
src/timer.h \
src/loadanimation.h \
src/mediaplay.h \
src/push.h \
src/push-list-button.h \
src/media.h \
src/timer-for-play.h
SOURCES += src/app-scene.cpp \
src/button.cpp \
src/cate-button.cpp \
src/category.cpp \
src/list.cpp \
src/main.cpp \
src/play.cpp \
src/reverse-button.cpp \
src/view-manager.cpp \
src/network-xml.cpp \
src/downloadThread.cpp \
src/analyzing-xml.cpp \
src/database.cpp \
src/list-button.cpp \
src/timer.cpp \
src/loadanimation.cpp \
src/mediaplay.cpp \
src/push.cpp \
src/push-list-button.cpp \
src/media.cpp \
src/timer-for-play.cpp
RESOURCES += $${NAME}.qrc

clear.commands += rm -fr *.tar.gz *.rpm rpmbuild
clear.depends = clean distclean

rpm.target = rpm
rpm.commands = \
rm -fr rpmbuild \
rm -rf .tmp \
&& mkdir -p rpmbuild/{SOURCES,SPECS,SRPMS,RPMS,BUILD,BUILDROOT} \
&& cp *.spec rpmbuild/SPECS/ \
&& cp *.tar.gz rpmbuild/SOURCES/ \
&& rpmbuild --define=\"_topdir `pwd`/rpmbuild\" -ba $${NAME}.spec \
&& mv rpmbuild/RPMS/i386/*.rpm . \
&& mv rpmbuild/SRPMS/*.rpm . \
&& rm -rf rpmbuild \
&& make distclean

# order is important, because, "make dist" needs "qrc_*.cpp" which is generated by "make first"
rpm.depends = first dist

QMAKE_EXTRA_TARGETS += rpm clear



leos@leos-laptop:test-music $ cat test-music.spec
%define debug_packages %{nil}
%define debug_package %{nil}
Name: test-music
Version: 0.1.0
Release: 5.tc%{?dist}
Summary: music online by QT

Group: Applications/Multimedia
License: Asianux
URL: www.asianux.com
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-root

#Requires: demo-server

%description
music online by QT ...

%prep
%setup -q

%build
qmake
make

%install
make INSTALL_ROOT=%{buildroot} install

%clean

%files
%defattr(-,root,root,-)
%{_bindir}/test-music
%{_datadir}/test-music/*.db
%{_datadir}/pixmaps/*.png
%{_datadir}/applications/desktop/*.desktop
%{_datadir}/dbus-1/services/*.service

%changelog

DarthVader 2011-10-07
  • 打赏
  • 举报
回复
试试Intel的AppUp
周齐子 2011-09-23
  • 打赏
  • 举报
回复
关注一下
小小爱1990 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yiyaaixuexi 的回复:]

用qt-creator
http://www.meegox.com/thread-1555-1-1.html
[/Quote]

我就是这样做的 但是只能在root用户下安装
念茜 2011-09-01
  • 打赏
  • 举报
回复
简介   MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环 境,它是Minimalist GNU on Windows的略称。这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC (Microsoft Foundation Classes微软基础类库)。   注:msvcrt.dll(名称:Microsoft C Runtime Library)提供了printf,malloc,strcpy等C语言库函数,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能. 编辑本段概念   MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。   MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC 产生 Windows32 程序。   在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。下一个组成部分是 w32api 包,它是一组可以使用 Windows32 API 的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 Windows32 API 功能。 编辑本段mingw工具集合   实际上 MinGW 并不是一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。   开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。   所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。   GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。并且 GCC 几乎可以移植到目前所有可用的计算机平台。(我的电脑上就还装有 DevKitPro,里面包含 GCC 的 ARM(for GBA/DS/GP32) 和 MIPS(for PSP) 版本。)   GCC 本身不像 VC 那样拥有IDE 界面(在 Windows 上也存在 Dev C++ 之类的支持 MinGW 编译器的 IDE)。源代码编辑你可以选用任何你喜欢的文本编辑器(据说微软的开发人员包括 VC 的开发都不用 VC 所带的 IDE 编辑器,而是选用 GNU 的 VIM 编辑器)。然后使用 make 等工具来进行软件项目的编译、链接、打包乃至发布。而像 cvs(svn) 源代码版本控制工具可以让世界上任何一个角落的人都可以参与到软件项目中来。   关于 MFC,微软基础库类,这个随 VC++ 携带的一个源代码公开的开发包,和其他 Windows 程序开发包是一样的。如果有 VC++ 的授权,你完全可以使用 MFC 的源代码,也就是你使用 GCC 来编译 MFC 程序是完全可以的。   当然,GNU 下也很多 Windows 程序开发包,甚至有一些是支持跨平台使用的。不仅仅可以直接把源代码编译为 Windows 程序,也可以不经修改编译为其他操作系统的图形程序。   不过 GNU 下,最流行的图形界面开发库是 GTK+与Qt。GTK+ 与Qt均提供跨平台支持。例如qt支持windows、linux、mac os x、windows CE、symbian、meego等操作系统平台,并且提供了Qt SDK(包含Qt creator集成开发环境)。Gtk也能很好的运行在 Windows 平台(比如 GIMP 和 Gaim)。   总体说来,使用 MinGW 就是 GNU。

1,552

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与英特尔开源软件相关的技术
社区管理员
  • 英特尔开源软件社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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