• 38150阅读
  • 21回复

【原创】一条命令搞定QT编译! [复制链接]

上一主题 下一主题
离线fanyu
 
只看楼主 倒序阅读 楼主  发表于: 2005-09-06
— 本帖被 XChinux 执行取消置顶操作(2011-05-30) —
将下述内容存为一个bat或cmd文件,把这个文件放到系统目录下,就可以在任何地方用命令行的方式来编译Qt程序了。

@echo off

set QTDIR=D:\Qt\4.0.0
set PATH=D:\Qt\4.0.0\bin;D:\Dev-Cpp\bin;%SystemRoot%\System32;%path%
set QMAKESPEC=win32-g++

qmake -project
qmake
make
离线fanyu
只看该作者 1楼 发表于: 2005-09-06
这个程序有一个重要功能我不会实现,就是判断debug和release目录是否为空,哪位朋友会呢?加上它以后就不需要编译前手动删除mingw生成的文件了。
离线XChinux

只看该作者 2楼 发表于: 2005-09-06
我来修改一下:

@echo off
set QTDIR=D:\Qt\4.0.0
set PATH=D:\Qt\4.0.0\bin;D:\Dev-Cpp\bin;%SystemRoot%\System32;%path%
set QMAKESPEC=win32-g++
make clean
qmake -project
qmake
make
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线fanyu
只看该作者 3楼 发表于: 2005-09-07
XChinux 加的那行代码make clean不能正常执行,有错误。
离线yfy002

只看该作者 4楼 发表于: 2005-09-07
rename mingw32-make to make
我渴望平静,风却给了我涟漪
我的blog:
http://sungaoyong.cublog.cn
离线fanyu
只看该作者 5楼 发表于: 2005-09-07
这个问题终于解决了,是这样做的
@echo off

set QTDIR=D:\Qt\4.0.0
set PATH=D:\Qt\4.0.0\bin;D:\Dev-Cpp\bin;%SystemRoot%\System32;%path%
set QMAKESPEC=win32-g++

if exist release del release\*.* /q
qmake -project
qmake
make
离线XChinux

只看该作者 6楼 发表于: 2005-09-07
還有一個東西你沒處理,就是沒有make clean
如果沒有make clean的話,就會有ui_xxxx.h這樣的文件存在,在qmake -project的時候就會包含到裡面去,而這並不是本意。所以還要修改一下。
这个问题终于解决了,是这样做的

@echo off
set QTDIR=D:\Qt\4.0.0
set PATH=D:\Qt\4.0.0\bin;D:\Dev-Cpp\bin;%SystemRoot%\System32;%path%
set QMAKESPEC=win32-g++
if exist Makefile make clean
qmake -project
qmake
make
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线fanyu
只看该作者 7楼 发表于: 2005-09-07
不用这样吧,你这样做还是通不过的,况且有ui_xxxx.h这样的文件并不存在。
离线fanyu
只看该作者 8楼 发表于: 2005-09-07
make clean会产生如下的错误,其实我这根本就没有下面那些文件
E:\QTCode\test3>make clean
mingw32-make -f Makefile.Release clean
mingw32-make[1]: Entering directory `E:/QTCode/test3'
del qmake_image_collection.cpp
找不到 E:\QTCode\test3\qmake_image_collection.cpp
del ui_form1.h
找不到 E:\QTCode\test3\ui_form1.h
del release\a.o
mingw32-make[1]: Leaving directory `E:/QTCode/test3'
mingw32-make -f Makefile.Debug clean
mingw32-make[1]: Entering directory `E:/QTCode/test3'
del qmake_image_collection.cpp
找不到 E:\QTCode\test3\qmake_image_collection.cpp
del ui_form1.h
找不到 E:\QTCode\test3\ui_form1.h
del debug\a.o
找不到 E:\QTCode\test3\debug\a.o
mingw32-make[1]: Leaving directory `E:/QTCode/test3'
离线XChinux

只看该作者 9楼 发表于: 2005-09-07
你不信试试,在不make clean的情况下,再次qmake -project就会把ui_xxxx.h这样的由xxx.ui生成的头文件包含进来的。.pro文件就不准确了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线fanyu
只看该作者 10楼 发表于: 2005-09-13
最终版的Qt.cmd如下,请大家使用前对set中的路径设置正确,若有其另需要可以自行更改。
@echo off

set QTDIR=D:\Qt\4.0.0
set PATH=D:\Qt\4.0.0\bin;D:\Dev-Cpp\bin;%SystemRoot%\System32;%path%
set QMAKESPEC=win32-g++

if exist release del release\*.* /q
qmake -project
qmake
make
离线catsoft

只看该作者 11楼 发表于: 2006-04-15
谢谢啊!

我的使用:

因为我环境变量设置过了,我更改为:
@echo off

if exist release del release\*.* /q
qmake -project
qmake
make -f Makefile.release

保存为 release.bat 放在System32目录下 或 Qt的bin目录下 生成release目录下文件就用这个

@echo off

if exist debug del debug\*.* /q
qmake -project
qmake
make -f Makefile.Debug

保存为 debug.bat 放在System32目录下 或 Qt的bin目录下 生成debug目录下文件就用这个

因为我编译过debug库后 make命令变了,所以改成这样,这下就方便多了
离线aaniao999

只看该作者 12楼 发表于: 2007-04-05
大家是不是忽略了PRO呢?
我的linux版本的是这样的
#!/bin/sh
###help
if [ "$1" = "-h" ]||[ "$1" = "-help" ]||[ "$1" = "--h" ]||[ "$1" = "--help" ];then
    echo "\"$0 pro\" use the .pro file mode"
    exit 0
fi

make clean
rm -f Makefile
if [ "$1" != "pro" ]&&[ "$1" != "PRO" ];then
    echo
    echo
    echo '  --------A T T E N T I O N : automake work in  N O _ P R O  mode--------'
    echo
    echo
    ls *.pro | xargs -i rm -f {}
    qmake -project
else
    echo
    echo
    echo '                      --------using  P R O  mode--------'
    echo
    echo
fi
ls *.pro | xargs -i -t qmake {}
make
exit 0
离线圆融一笑
只看该作者 13楼 发表于: 2007-08-09
没有这样的问题吧
离线frankpaine
只看该作者 14楼 发表于: 2008-06-07
试过了,非常非常好用。
但有个疑问~
要是编译过程中有错误怎么办?
貌似命令执行后立刻就关闭窗口了,
错误信息没法看。。。
离线weiming
只看该作者 15楼 发表于: 2008-11-07
LINUX下使用qmake 生成 QT的范例程序 的makefile, 出问题(急!!!!)
LINUX下使用qmake 生成 QT的范例程序 的makefile, 出问题(急!!!!)
我安装QT在 /etc/profile 环境变量:
export PATH=$PATH:/opt/qt-4.4.3/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/qt-4.4.3/lib
export QTDIR=/opt/qt-4.4.3
export QMAKESPEC=$QTDIR/mkspecs/linux-g++

为生成makefile,使用以下命令
[root@thalix_dev1 screenshot]# qmake -o Makefile screenshot.pro
Cannot find directory: ../common
Cannot find directory: ../common
QFile::open: No file name specified
QFile::open: No file name specified
QFile::open: No file name specified
QFile::open: No file name specified
QFile::open: No file name specified
QFile::open: No file name specified
QFile::open: No file name specified
......
终端不断打印
QFile::open: No file name specified

如何解决呢 ?
离线superyongzhe

只看该作者 16楼 发表于: 2008-12-16
谢谢
有付出才有回报!
离线vfdff

只看该作者 17楼 发表于: 2009-04-02
引用第1楼fanyu于2005-09-06 17:28发表的  :
这个程序有一个重要功能我不会实现,就是判断debug和release目录是否为空,哪位朋友会呢?加上它以后就不需要编译前手动删除mingw生成的文件了。


用rm删除不可以吗?
离线jerychang
只看该作者 18楼 发表于: 2009-06-10
哈哈,有意思.谢谢...
QT HAO..
离线laiguo
只看该作者 19楼 发表于: 2010-04-28
D:\Qt\4.0.0???
这是LINUX下用的吗
离线yu3241510
只看该作者 20楼 发表于: 2010-07-31
为什么运行make命令时说它不是内部或外部命令呢?哪出错了?
离线diyuanbo

只看该作者 21楼 发表于: 2011-05-25
挂一漏万
快速回复
限100 字节
 
上一个 下一个