2019-07-16 09:20发布
爱吃果冻 发表于 2014-7-22 11:58 入门级的小程序hello world 对环境的要求:Linux机器上已经安装了Qt,我用的版本是3.3。为了方便开发 ...
最多设置5个标签!
对环境的要求:Linux机器上已经安装了Qt,我用的版本是3.3。为了方便开发,使用VncViewer访问Linux,UltraEdit编写程序并通过ftp传送到Linux机器。
1.写以下代码并存为helloworld.cpp。别敲错了,我跟编译器不熟,报错基本考自查,所以手误这种不算问题的问题还是要尽量避免。
这段代码的逐段解释参见《Qt参考文档 Qt教程一 第一章 Hello, World!》
2.在Linux下创建一个文件夹叫helloworld,把helloworld.cpp放进去。提醒使用VncViewer的读者,要放在自己权限可以访问到的目录下。
3.登录Linux,打开终端,进入helloworld文件夹,输入命令qmake -project。执行后用ls查看,是不是多了helloworld.pro文件?qmake -project的意思是用qmake根据helloworld.cpp生成其工程文件,即.pro文件。
输入命令qmake,ls查看一下,是不是又多了一个Makefile文件?qmake根据工程内已有的文件以及他们之间的引用关系自动生成Makefile文件,在这个文件里指定了编译器。
4.输入make命令,会生成一个名为helloworld的文件,标志着我们成功了!文件没有后缀,是可执行的文件,相当于Windows下的helloworld.exe。
5.输入./helloworld来执行我们写的这个程序。执行结果如下图:
以上是一切顺利的情况,一般没有那么好的事,至少我就没遇上。步骤1、2、5应该都没有问题。现在来说说问题以及解决。
如果qmake命令不能执行,请确认已经安装了Qt;当前用户对helloworld文件夹以及里面的文件有读取、修改、执行的权限。如果报错“权限不足”,最好用root登录,如果还不行,在文件夹上点右键,修改属性—>权限,选择勾选写入、执行等。
如果你的Linux上装过不同版本的Qt,或者同时存在两个版本的Qt,很有可能导致编译失败。请在安装或者版本升级时注意清理。
错误“-lqt-mt 找不到文件或文件夹”。用vi打开本工程的Makefile文件,我们可以看到这样一句:LIBS = $(BUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -1Xext -1X11 -1m。这句话指定了编译所用的库,是位于$(QTDIR)/lib目录下的lqt-mt.so文件。但编译时,发现这个文件不存在,它就报错了。
那么,这个文件在哪里呢?我的机器上,它在/usr/lib/qt-3.3/lib下。把$(QTDIR)/lib改为/usr/lib/qt-3.3/lib就行了。$(QTDIR)自动替换qt-3.3安装的目录,但某些原因导致它是错误的。
网上有人使用修改文件的办法,就是不修改目录,找到lqt-mt.so并cp成LIBS指定的文件名;或者把此目录下的文件修改为LIBS指定的文件名。这个方法在我的试验环境下是不起作用的。
这个修改路径的办法的缺陷是,只能生成一次helloworld,然后Makefile中又被改回$(QTDIR)/lib。
输出窗口比较小,靠近屏幕左上的角落里,别看不到。
好的,谢谢你的回复。我已经搞定了,用的是QTK
一周热门 更多>