当前位置:文档之家› linux下内存释放问题

linux下内存释放问题

linux下内存释放问题
linux下内存释放问题

linux下内存释放问题

细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会非常快被用光,当程式结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么非常好解决的办法.那么我来谈谈这个问题.

先来说说free命令

[root@server ~]# free -m

total used free shared buffers cached

Mem: 249 163 86 0 10 94

-/+ buffers/cache: 58 191

Swap: 511 0 511

其中:

total 内存总数

used 已使用的内存数

free 空闲的内存数

shared 多个进程共享的内存总额

buffers Buffer Cache和cached Page Cache 磁盘缓存的大小

-buffers/cache 的内存数:used - buffers - cached

+buffers/cache 的内存数:free + buffers + cached

可用的memory=free memory+buffers+cached

有了这个基础后,能得知,我目前used为163MB,free为86,buffer和cached分别为10,94

那么我们来看看,如果我执行复制文件,内存会发生什么变化.

[root@server ~]# cp -r /etc ~/test/

[root@server ~]# free -m

total used free shared buffers cached

Mem: 249 244 4 0 8 174

-/+ buffers/cache: 62 187

Swap: 511 0 511

在我命令执行结束后,used为244MB,free为4MB,buffers为8MB,cached为174MB,天呐都被cached吃掉了.别紧张,这是为了提高文件读取效率的做法.

引用

https://www.doczj.com/doc/016406331.html,/archives/2007/09/linux_free.html

"为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了I/O系统调用(比如read,write,getdents)的时间。" 那么有人说过段时间,linux会自动释放掉所用的内存,我们使用free再来试试,看看是否有释放>?

[root@server test]# free -m

total used free shared buffers cached

Mem: 249 244 5 0 8 174

-/+ buffers/cache: 61 188

Swap: 511 0 511

MS没有所有变化,那么我能否手动释放掉这些内存呢???回答是能的!

/proc是个虚拟文件系统,我们能通过对他的读写操作做为和kernel实体间进行通信的一种手段.也就是说能通过修改/proc中的文件,来对当前kernel的行为做出调整.那么我们能通过调整/proc/sys/vm/drop_caches 来释放内存.操作如下:

[root@server test]# cat /proc/sys/vm/drop_caches

首先,/proc/sys/vm/drop_caches的值,默认为0

[root@server test]# sync

手动执行sync命令(描述:sync 命令运行sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的i-node、已延迟的块I/O 和读写映射文件)

[root@server test]# echo 3 > /proc/sys/vm/drop_caches

[root@server test]# cat /proc/sys/vm/drop_caches

3

将/proc/sys/vm/drop_caches值设为3

[root@server test]# free -m

total used free shared buffers cached

Mem: 249 66 182 0 0 11

-/+ buffers/cache: 55 194

Swap: 511 0 511

再来运行free命令,发现目前的used为66MB,free为182MB,buffers为0MB,cached为11MB.那么有效的释放了buffer和cache.

有关/proc/sys/vm/drop_caches的用法在下面进行了说明

/proc/sys/vm/drop_caches (since Linux 2.6.16)

Writing to this file causes the kernel to drop clean caches,

dentries and inodes from memory, causing that memory to become

free.

To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to

free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;

to free pagecache, dentries and inodes, use echo 3 >

/proc/sys/vm/drop_caches.

Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync(8) first.

QtCreator安装和helloworld程序编写

封面 作者:PanHon glia ng 仅供个人学习

一、Qt Creator的安装和hello world 程序的编写

我们这里讲述windows 下的Qt Creator ,在Linux 下基本相同。本文先讲述基本的下载、安装和最简单程序的编写,然后在附录里又讲解了两种其他的编写程序的方法。 1.首先到Qt 的官方网站上下载Qt Creator ,这里我们下载windows 版的。下载地址:如下图我们下载:Download Qt SDK for Windows* (178Mb) 下载完成后,直接安装即可,安装过程中按默认设置即可。 2.运行Qt Creator ,首先弹出的是欢迎界面,这里可以打开其自带的各种演示程序。 3.我们用File->New 菜单来新建工程。 4.这里我们选择Qt4 Gui Application 。 5.下面输入工程名和要保存到的文件夹路径。我们这里的工程名为hello world 。 6.这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所以直接点击Next 。 7.我们将base class 选为QDialog 对话框类。然后点击Next 。 8.点击Finish ,完成工程的建立。 9.我们可以看见工程中的所有文件都出现在列表中了。我们可以直接按下下面的绿色的run 按钮或者按下Ctrl+R 快捷键运行程序。 10.程序运行会出现空白的对话框,如下图。 11.我们双击文件列表的dialog.ui 文件,便出现了下面所示的图形界面编辑界面。 12.我们在右边的器件栏里找到Label 标签器件

13.按着鼠标左键将其拖到设计窗口上,如下图 14.我们双击它,并将其内容改为hello world 。 15.我们在右下角的属性栏里将字体大小由9 改为15 16.我们拖动标签一角的蓝点,将全部文字显示出来 17.再次按下运行按钮,便会出现hello world 。 到这里hello world 程序便完成了。 Qt Creator 编译的程序,在其工程文件夹下会有一个debug 文件夹,其中有程序的.exe可执行文件。但Qt Creator默认是用动态链接的,就是可执行程序在运行时需要相应的.dll 文件。我们点击生成的.exe 文件,首先可能显示“ 没有找到mingwm10.dll ,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。”表示缺少mingwm10.dll 文件。 解决这个问题我们可以将相应的.dll 文件放到系统中。在Qt Creator 的安装目录的qt 文件下的bin 文件夹下(我安装在了D 盘,所以路径是 D:\Qt\2009.04\qt\bin ),可以找到所有的相关.dll 文件。 方法一:在这里找到mingwm10.dll文件,将其复制到C:\WINDOWS\systen文件夹下即可。下面再提示缺少什么dll 文件,都像这样解决就可以了。 方法二:将这些dll 文件都与.exe 文件放到同一个文件夹下。不过这样每 个.exe文件都要放一次。 方法三:将D:\Qt\2009.04\qt\bin加入系统Path环境变量。右击我的电脑->属性->高级->环 境变量->在系统变量列表中找到Path,将路径加入其中即可。 附 1:用纯源码编写。 1.新建空的Qt4 工程。 2.工程名为hello world ,并选择工程保存路径(提示:路径中不能有中 文)。 3.在新建好的工程中添加文件。右击工程文件夹,弹出的菜单中选择 Add New。

linux下种定时执行任务方法

(1)at命令 假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。 设置at命令很简单,指示定运行的时间,那么就会在哪个时候运行。at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。at now + time命令可以在指示任务。 假设处理一个大型数据库,要在别人不用系统时去处理数据,比如凌晨3点10分。那么我们就应该先建立/home/kyle/do_job脚本管理数据库,计划处理/home/kyle/do_job文件中的结果。正常方式是这样启动下列命令: # at 2:05 tomorrow at>/home/kyle/do_job at> Ctrl+D AT Time中的时间表示方法 ----------------------------------------------------------------------- 时间例子说明 ----------------------------------------------------------------------- Minute at now + 5 minutes任务在5分钟后运行 Hour at now + 1 hour任务在1小时后运行 Days at now + 3 days任务在3天后运行 Weeks at now + 2 weeks任务在两周后运行 Fixed at midnight任务在午夜运行 Fixed at 10:30pm任务在晚上10点30分 注意:一定要检查一下atq的服务是否启动,有些操作系统未必是默认启动的,linux 默认为不启动,而ubuntu默认为启动的。检查是否启动,用service atd检查语法,用service atd status检查atd的状态,用service atd start启动atd服务。 查看at执行的具体内容:一般位于/var/spool/at目录下面,用vi打开,在最后一部分

Linux操作系统基础教程

Linux操作系统基础教程 清华大学信息学院计算机系 目录 前言 (2) 第一讲 Linux基础 (2) 一.什么是Linux? (2) 二.安装Linux的好处? (3) 三.如何得到Linux? (3) 四.如何得到Linux的最新消息? (3) 五.Linux操作系统上有什么应用? (4) 六.在那里可以找到讨论区? (5) 七.安装过程 (5) 第二讲 Linux基础进阶 (5) 一.Linux的文件系统结构 (6) 二. 文件类型 (7) 三.Linux基本操作命令 (8) 四.基本的系统管理命令 (14) 五.关於 Process 处理的指令 (16) 六. 关於字串处理的指令 (17) 七. 网路上查询状况的指令 (17) 八. 网路指令 (18) 九. 关於通讯用的指令 (21) 十. 编译器( Compiler ) (22) 十一. 有关列印的指令 (22) 第三讲 Linux下的网络服务,配置问题和常用工具 (24) 一.Linux下的网络服务 (24) 二.几种重要的配置文件 (26) 三.Linux下常用的工具软件 (28) 尾语 (31)

前言 Linux是在1991年发展起来的与UNIX兼容的操作系统,可以免费使用,它的源代码可以自由传播且可任人修改、充实、发展,开发者的初衷是要共同创造一个完美、理想并可以免费使用的操作系统。 我们并不能使同学们通过这次系列讲座成为一个UNIX类操作系统的高手,这次系列讲座的目的就是在同学们中间普及Linux基础知识,为今后我们更加接近的了解Linux做一个好的开端。 第一讲 Linux基础 在这一讲中,我们主要是了解一下Linux的概况,以及对Linux有一个初步的感性认识。 一.什么是Linux? Linux是一个以Intel系列CPU(CYRIX,AMD的CPU也可以)为硬件平台,完全免费的UNIX兼容系统,完全适用于个人的PC。它本身就是一个完整的32位的多用户多任务操作系统,因此不需要先安装DOS或其他的操作系统(MS Windows, OS2, MINIX..)就可以进行直接的安装。Linux的最早起源是在1991年10月5日由一位芬兰的大学生Linux Torvalds (Torvalds@kruuna.helsinki.fi)写了Linux核心程序的0.02版开始的,但其后的发展却几乎都是由互联网上的Linux社团(Linux Community)互通交流而完成的。Linux不属于任何一家公司或个人,任何人都可以免费取得甚至修改它的源代码(source code)。Linux上的大部分软件都是由GNU倡导发展起来的,所以软件通常都会在附着GNU Public License(GPL)的情况下被自由传播。GPL是一种可以使你免费获得自由软件的许可证,因此Linux使用者的使用活动基本不受限制(只要你不将它用于商业目的),而不必像使用微软产品是那样,

qt程序在linux console模式下运行

Qt程序在linux Console模式下运行 原文链接:在x86非图形界面下运行QtEmbedded程序 众所周知,一般我们在桌面环境下可以使用qvfb这个工具作为运行QtEmbedded程序的模拟器环境,但我们今天不讲这些大家都知道的事情。 回顾一下QtEmbedded对系统以及硬件的要求,一般来说只有下面少少的几点: 1、 Linux内核+ framebuffer驱动+ socket支持 2、 /tmp可写 3、有合适的键盘和鼠标(触摸屏)驱动并做好与Qt的集成 4、合适的编译器和交叉编译工具链(toolchain) 那么聪明的同学已经想到了,为什么我们不能直接在桌面的linux系统中运行QtE程序呢?似乎QtE的要求我们的桌面系统一样可以满足亚。答案当然是肯定的。 一条一条来说的话, 1内核支持framebuffer和socket这一条大部分发行版默认的内核就可以; 2就不用说了;3在QtE的源码里自带了对普通桌面鼠标和键盘硬件的驱动;4对于X86系统,普通的gcc就可满足,一般linux发行版带的gcc版本也基本可以满足QtE编译的要求。 那么,怎么才能实现我们的想法呢?还是要一步一步按部就班来做。以笔者的Ubuntu 为例,介绍一下设置的具体步骤。 编译QtEmbedded 这一步编译和编译qvfb版本区别不大,只是不再需要configure的时候加-qvfb参 数,只用不加参数的configure足矣。 # tar -zxvf qt-em bedded-linux-opensource-src-4.5.1.tar.gz # cd qt-em bedded-linux-opensource-src-4.5.1 # ./configure -embedded x86 –qvfb // 我的编译情况是: ./confignre –prefix /work/Trolltech/QtEm bedded-4.5.1–no-o penssl # gmake # gmake install qt-em bedded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.1 设置环境变量: # vi ~/.bashrc 把下面的加上去 export QTEDIR=/usr/local/Trolltech/QtEm bedded-4.5.1 export PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/bin:$PAT H export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEm bedded-4.5.1/lib:$LD_LIBRA RY_PATH

实验一、Qt实验环境搭建和使用

实验一、Qt实验环境的搭建和使用 一、实验目的 1、熟悉Qt的安装步骤 2、熟悉Qt程序的基本结构 二、实验内容 1、搭建虚拟机+Linux实验环境 2、安装Qt4.8 步骤: (1)解压代码 tar zxvf qt-everywhere-opensource-src-4.8.2.tar.gz (2)执行./config生成makefile ./config 下面出现对话框选择open source edition.这是自由版。输入yes接受协议。 (3)编译QT 执行make命令,需要2个小时。 (4)安装QT 运行make install命令。需要几分钟时间,默认安装到/usr/local/Trolltech/Qt-4.8.2. 运行/usr/local/Trolltech/Qt-4.5.3/bin/designer ,若能启动QT,说明QT已经安装好了。 (5)设置环境变量 更改用户环境变量 gedit /home/envi/.bashrc 添加: export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PA TH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PA TH=$QTDIR/lib:$LD_LIBRARY_PA TH 更改包括root用户的环境变量 sudo gedit /etc/profile 添加: export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PA TH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PA TH=$QTDIR/lib:$LD_LIBRARY_PA TH (6)测试环境变量 重启测试环境变量: qmake -v 显示版本信息:

Linux下定时执行脚本

Linux下定时执行脚本 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。下面看一下具体的用法: 首先查看一下/etc/crontab文件: $ cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。 文件/etc/crontab中每行任务的描述格式如下: minute hour day month dayofweek command minute - 从0到59的整数 hour - 从0到23的整数 day - 从1到31的整数 (必须是指定月份的有效日期) month - 从1到12的整数 (或如Jan或Feb简写的月份)

实验2:Linux操作系统基本操作

实验报告2 课程名称:Linux程序设计实验名称:Linux操作系统基本操作 学生姓名:班级:学号: 指导老师:钱振江成绩: 一、实验目的 1.通过对emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法; 2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux操作系统中文件命令的用法。 二、实验任务与要求 1.emacs的使用,要求能新建、编辑、保存一个文本文件 2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 3.gedit的使用,要求能新建、编辑、保存一个文本文件 4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录 5.掌握cp、ls、mv、chmod、rm等命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。 三、实验工具与准备 计算机PC机,Linux Ubuntu操作系统 预备知识 文本编辑器emacs、gedit是一款图形化的编辑器,具体的使用方法按照菜单操作。文本编辑器vi有三种状态:命令状态、最后行状态、编辑状态。 mv:用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。 rm:删除文件或目录,参数-r指示rm将参数中列出的全部目录和子目录均递归删除,在使用rm命令要小心,因为一旦被删除,它是不能恢复的。 cp:将一个文件拷贝至另一文件,或将数个文件拷贝至另一目录。 chmod:用于改变文件或目录的访问权限,它的使用格式为: chmod [who] [+|-|=] [mode] 文件名 who可取u、g、o、a,或它们的组合 mode可取r、w、x等参数。 ls:用于显示目录内容,它的使用权限是所有用户。 mkdir:建立子目录,它的使用权限是所有用户。 四、实验步骤与操作指导 1.学习vi或者vim的使用,要求能新建、编辑、保存一个文本文件。 (1)点击”应用程序”→ “附件”→“终端”,打开终端,在终端输入命令: [root@localhost root]#vi kk.c 按i键,进入插入状态。 (2)输入以下C程序 #include

ubuntu 下QTCreator安装及使用

QT Creator安装与应用 注:在用QT编程时,不要用QtUiTools等库,QTEmbedded中没有这些库。 1、执行以下命令,进行安装QT应用库文件及QT Creator; sudo apt-get install qt4-dev-tools qt4-designer qt4-doc qt4-qtconfig qt4-demos qt4-qmake libqt4-sql-mysql qdevelop (这一步可以省略)sudo apt-get install qt-creator 简介: qt4-dev-tools 中包括了Qt Assistant,Qt Linguist,Qt Creator qt4-designer 可视化窗体设置工具 qt4-doc 这个是帮助文档 qt4-qtconfig Qt的配置工具,这个装好默认好 qt4-demos 官方的一些Demo Qt Assistant是Qt自带的一款可定制、可重新发行的帮助文件浏览器。Qt Assistant 支持HTML文件,用户可以利用其定制自己的功能强大的帮助文档浏览器。关于Qt Assistant定制的资料主要是Qt Assistant自身所带的英文文档,虽然讲解比较详细,但是对于初学者来说难以快速的入手https://www.doczj.com/doc/016406331.html,/space.php?uid=8210028&do=blog&id=343591

QT-Designer使用教程https://www.doczj.com/doc/016406331.html,/data/2007/1228/article_2935.htm Qt Designer使用简易教程 https://www.doczj.com/doc/016406331.html,/s/blog_4b0f065f0100e4zv.html QT-Linguist使用方法:QT-Linguist工具主要用在项目的多语言翻译处理过程中https://www.doczj.com/doc/016406331.html,/jrsnail/blog/item/b179942ec3144a434fc2268d.html 2、按照提示输入“y”,安装相应文件,结果如下界面所示; 3、安装后,单击左上角Applications,选择Programming,会出现刚才安装的相应QT应用程序,如下界面所示;

linux定时执行crontab

linux定时执行crontab 2009-11-18 作者:编辑:闫蕊点击进入论坛 关键词:linux crontab -e 进入一个vi 编辑界面 在最后一行加上 */30 * * * * netstat > /tmp/net.log 表示每隔30分就执行netstat命令,并把执行结果存入net.log中。 Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序 使用cron服务,用service crond status 查看cron服务状态,如果没有启动则service crond start启动它, cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务: crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l //列出某个用户cron服务的详细内容 crontab -r //删除没个用户的cron服务 crontab -e //编辑某个用户的cron服务 比如说root查看自己的cron设置:crontab -u root -l 再例如,root想删除fred的cron设置:crontab -u fred -r 在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e 进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt 编辑/etc/crontab文件,在末尾加上一行:30 5 * * * root init 6 这样就将系统配置为了每天早上5点30自动重新启动。

Linux-Ubuntu 下 Qt 4.7.1静态编译

Qt的静态编译是本文介绍的内容,相比较来说windows的Qt静态编译比较容易,相反对于linux编译网上的文章实践下来都有这样那样的错误,这里简要小结一下自己的编译成果。 一、实验环境 1Ubuntu 10.04 2qt-x11-opensource-4.7.1.tar.gz 二、前期准备 在安装好Ubuntu 10.04后默认是没有安装程序编译软件包的,所以我们首先是要配置ubuntu。 配置方法:(推荐全程root用户模式) 1、首先调整网络设置使得机器可以上网(具体做法因人而异,这边就忽略不计) 2、需要配置的安装包:输入命令: 3apt-get install build-essential libpcap0.8-dev libx11-dev libfreetype6-dev 4libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev 三、静态编译Qt 1、下载qt-x11-opensource-4.7.1.tar.gz 2、解压缩qt-x11-opensource-4.7.1.tar.gz 3、配置path 输入命令: 5export PATH="$PATH:/usr/local/Trolltech/Qt-4.7.1/bin" 4、进入qt解压目录,配置configure命令:./configure -static -nomake demos

-nomake examples -nomake tools -no-exceptions 5、分别输入“o”和“y”以后进入编译阶段 6make 7make install 慢慢等吧…… 四、静态编译Qt程序 1、建立文件夹,然后写程序文件XX.cpp 2、qmake -project 3、生成pro文件后在里面加入CONFIG += static 4、qmake 5、生成Makefile后在cxxflags的=后插入-static 6、make 小结:实现Ubuntu 下Qt4.7.1静态编译的内容介绍完了,希望本篇的静态编译读你有所帮助。 【编辑推荐】 8Qt中根据不同版本号使用不同源码 9解析Qt资源文件使用 10深度解析QT 介绍跨平台界面库 11Windows下Qt 静态编译连接 12浅谈Qt 静态编译 原文参考:https://www.doczj.com/doc/016406331.html,/symbian-270510.htm

qt在windows-安装配置

Installing Qt/Windows 本人在windows下使用Qt所以下面介绍一下在windwos安装Qt的情况。 qt在windows安装,很简单,我们按照下面的步骤: 第一步:准备安装软件 请大家准备好软件qt-win-opensource-4.0.1-mingw.exe 和 devcpp-4.9.9.2_setup.exe 如果大家没有软件,可以到官方下载,或者去https://www.doczj.com/doc/016406331.html,下载. 第二步:安装软件 大家先安装devcpp-4.9.9.2_setup.exe,详细过程就不讲了,windows软件小异 接下来安装qt-win-opensource-4.0.1-mingw.exe,安装过程也差不多,大家在安装过程中到了MinGW时,要注意在find MinGW (previously installed MinGW)是选择你安装的devcpp 的目录 比如:c:Dev-Cpp 其它的就不用管了,一直用‘next’就可以了 第三步:编译应用程序 1. 在这时就安装好了软件,接下来,我们来编译运行一个程序。 在记事本中我输入源代码 //////////////////////////////////////////////////// #include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.resize(100, 30); hello.show(); return app.exec(); } //////////////////////////////////////////////////// 我们保存文件为:helloworld.cpp 2. 接下来我从开始菜单进入Qt 4.0.1 command Prompt 在dos下进入文件的目录。 运用qmake工具编译文件。 a. 在进入要编译的文件目录,输入qmake -project 这个命令主要是生成工程文件 b. 接下来我们输入qmake,编译工程文件 c. 接下来我没输入 make 最后我们编译,这时如果没有错误,可执行文件就生成了。 第四步:运行程序 找到生成的release或者debug目录下的可执行文件,运行就可以了。

linux下自动化任务的例子——定时播放音乐

linux下自动化任务的例子 在linux系统中实现作业的自动化是非常便利的。 比较常用的是Cron服务的crontab这个命令。 ?一个具体的任务列表 这个是学校室外广播的自动程序,只用了?一台被废弃的塞羊800的学生机,安装的系统是红旗linux,其他的linux、FreeBSD、unix或者是MacOS都可以。 将Cron设为自动运行。 chkcon?g –level 35 crond on 进入系统终端 键入: crontab -u caizhongyi -e (crontab为命令,“-u cai”是指定执行作业的系统用户为cai,“-e”使用crontab自己的vi编辑器,防止出现编码或系统环境问题造成的错误)然后在编辑器(vi编辑器)中输入如下命令: 0 7 * * 1 mpg123 -q /home/cai/guangbo/001.mp3 21 8 * * 1 mpg123 -q /home/cai/guangbo/11.mp3 21 8 * * 2 mpg123 -q /home/cai/guangbo/21.mp3 21 8 * * 3 mpg123 -q /home/cai/guangbo/31.mp3 21 8 * * 4 mpg123 -q /home/cai/guangbo/41.mp3 21 8 * * 5 mpg123 -q /home/cai/guangbo/51.mp3 16 9 * * 2 mpg123 -q /home/cai/guangbo/212.mp3 16 9 * * 3 mpg123 -q /home/cai/guangbo/312.mp3 16 9 * * 4 mpg123 -q /home/cai/guangbo/412.mp3 16 9 * * 5 mpg123 -q /home/cai/guangbo/512.mp3 25 10 * * 1 mpg123 -q /home/cai/guangbo/12.mp3 25 10 * * 2 mpg123 -q /home/cai/guangbo/22.mp3 25 10 * * 3 mpg123 -q /home/cai/guangbo/32.mp3 25 10 * * 4 mpg123 -q /home/cai/guangbo/42.mp3

【IT专家】Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确认 qmake

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确 认qmake 2017/06/02 449 patchelf 工具可以修改已编译运行程序的依赖库位置和指定库链接器 ?patchelf --set-rpath ?patchelf --set-interpreter ?通过这个工具https://github/probonopd/linuxdeployqt如果自己编译不了,也可以下载现成的 ?https://github/probonopd/linuxdeployqt/releases ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict 并为成功,生成的lib目录下的so文件很少。 ?运行./linuxdeployqt-2-x86_64.AppImage ShanbayDict -appimage 也未成功,但lib 生成了很多so文件 ?使用patchelf --set-rpath /opt/Qt-5.7-static/lib/:./lib ShanbayDict 修改rpath后,ShanbayDict可以独立运行了,连同lib一起拷贝到新安装的Ubuntu 16.04系统中,也能运行了。 ?ldd ShanbayDict 显示,rpath已经指向./lib目录 ?patchelf可以通过sudo apt installpatchelf 安装 ?2017年2月24日 ?Qt 5.8编译的Qt程序 ?设置环境变量,确认qmake -v 是自己使用的Qt版本,如果不是,解决办法是: ?export PATH=/home/lieefu/Qt5.8.0/5.8/gcc_64/bin:$PATH ?创建qml目录,把/home/lieefu/Qt5.8.0/5.8/gcc_64/qml 目录下用到的模块复制过来,我的app用到了三个QtQuick、QtQuick.2、QtMultimedia。 ?增加plugin中platforminputcontexts 包括libfcitxplatforminputcontextplugin.so文

Ubuntu下Qt5开发环境安装设置

Ubuntu下Qt5开发环境安装设置 ZBF 一、常规知识 1.命令终湍 (桌面空白处,CTRL+ALT+T,常用可在左侧启动器中锁定) 提升权限sudo su,输入用户对应密码 查询文件dir 根级目录cd / 上级目录cd ./ 下级目录cd 目录名 重启系统reboot 查看进程ps -e 查进程ID pgrep 进程名称 杀死进程kill 进程id 杀死进程killall 进程名称 更新列表(联网)apt-get update 安装更新(联网)apt-get install 软件名称 2.更改下载服务器 如更新列表或安装软件速度过慢,可按需进行更换下载服务器 系统设置→软件和更新→Ubuntu软件:从“中国的服务器”改为“其他站点”中选择其它服务器3.隐藏启动器 桌面右键菜单→更改桌面背景→行为→自动隐藏启动器置为开启 常按窗口键可以召唤出来启动器 二、初始安装 1.输入法首选项设置 常规:英文、半角、半角、简体,9个 拼音模式:全拼, 模糊音:zh ch sh (需重启生效) 2.锁屏设置 系统设置→亮度和锁屏→锁定关闭 3.安装VMWare Tool 虚拟机菜单→安装安装VMWare Tool 光驱中压缩文件,提取文件到桌面 命令终湍中,管理员权限,进入提取目录,执行安装:./vmware-install.pl 出现[/USR/bin]之后一直开始按回车键,直接按到/dev/sr0 ...停止为止 删除临时文件,清空 关闭系统,设置共享文件夹 重启系统,查看mnt/hgfs/,可看到挂上的目录

三、安装Qt5-64位 1.安装Qt5 命令终湍中,管理员权限,进入下载目录,执行安装:./????.run 2.安装g++ 命令终湍中,管理员权限,执行安装:apt-get install g++ 3.安装OpenGL支持 Ubuntu-64位 Qt5-64位编译项目报错:cannot find -lGL apt-get install libGL-dev 按提示改成10.3.2-0ubuntu1版本的 libgl1-mesa-dev-lts-utopic 四、安装数据库环境 1.安装ODBC及配置工具 命令终湍中,管理员权限,执行安装:apt-get install unixODBC 命令终湍中,管理员权限,执行安装:apt-get install unixODBC-bin(此项有ODBCManageDataSourcesQ4) 命令终湍中,管理员权限,运行程序:ODBCManageDataSourcesQ4

Linux定时任务设置

Linux 下定时任务设置 文章分类:操作系统 为当前用户创建cron服务 1. 键入crontab -e 编辑crontab服务文件 例如文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 保存文件并并退出 */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh */2 * * * * 通过这段字段可以设定什么时候执行脚本 /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 这一字段可以设定你要执行的脚本,这里要注意一下bin/sh 是指运行脚本的命令后面一段时指脚本存放的路径 2. 查看该用户下的crontab服务是否创建成功,用crontab -l命令 3. 启动crontab服务 一般启动服务用/sbin/service crond start 若是根用户的cron服务可以用sudo service crond start,这里还是要注意下不同版本linux系统启动的服务的命令也不同,像我的虚拟机里只需用sudo service cron restart 即可,若是在根用下直接键入service cron start 就能启动服务

4. 查看服务是否已经运行用ps -ax | grep cron 5. crontab命令 cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明: crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l //列出某个用户cron服务的详细内容 crontab -r //删除没个用户的cron服务 crontab -e //编辑某个用户的cron服务 比如说root查看自己的cron设置:crontab -u root -l 再例如,root想删除fred的cron设置:crontab -u fred -r 在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e 进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt 任务调度的crond常驻命令 crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此 任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工 作便会自动执行该工作。

【IT专家】《Linux与Qt程序设计》知识框架

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 《Linux与Qt程序设计》知识框架 本文主要是通过一本书来大致了解Qt开发的框架,不对具体内容做详细分析。?1.首先弄清楚概念:定义- 以自己的话理解是什么- 实现的是什么功能- 用在哪些地方 ?2.前面认识到的知识点的特点- 代码实现- 工程代码分析 ?第一部分Linux基础知识第二部分Qt程序基础第5章OtCreator下载与安装5.1 QtCreator下载5.1.1 使用软件中心下载QtCreator5.1.2 访问Qt网站下载相关资源5.2 第一个Qt程序5.3 QtCreator介绍5.3.1 QtCreator界面介绍5.3.2 编译、调试、发布设置5.4 QtDesigner介绍第6章Qt基础6.1 Qt概述与特性6.1.1 Qt简介6.1.2 Qt特性 ?Qt SDK包括:Qt库、Qt Creator IDE、Qt工具:Qt Designer、Qt Linguist(消除国际化流程障碍)、Qt Assistant. ?6.2 Qt与Xll的关系6.2.1 什么是X116.2.2 Qt与Xl16.3 Qt与KDE的关系6.3.1 KDE简介6.3.2 Qt与KDE6.4 Qt库和组件 ?Qt SDK中主要包括类库、开发工具、平台相关支持、授权许可等。 ?其中类库包含了Qt的所有对外发布的功能组件: ?1)Core: Qt4的基本模块,定义了其他模块使用的Qt核心的非GUI类,所有其他模块都依赖于该模块。 ?2)GUI: 定义了图形用户界面类 ?3)WebKit:提供了一个在Qt中使用Web Browser的渲染与解析引擎。 ?4)Graphic View:提供的是一种Qt Model-View编程模式,既可以管理大数量的定制2D graphical items,又可以与它们交互,由于一个视图窗口可以把这些项绘制出来,并支持旋转与缩放。 ?5)Scripting:提供了对脚本(如:Java、Python、Perl、Ruby)的支持。 ?6)OpenGL ?7)XML: 定义了处理XML(eXtensible Markup Language)语言的类。

Linux下QT安装

一、下载Qt源码包到本机,然后解压缩 1.下载qt-x11-free-3. 2.1.tar.gz和qt-x11-opensource-src.tar.gz二进制包。 2.在终端切换至qt-x11-free- 3.2.1.tar.gz所在目录下,执行:tar zxvf qt-x11-free- 3.2.1.tar.gz -C /usr/local 3.已同样的方法将qt-x11-opensource-src-.tar.gz源码包解压缩到/usr/local目录PS:(推荐解压缩至/usr/local目录,目录可以根据名称自己创建) 二、进入用户主目录编辑该目录下的.bash_profile文件,并设置Qt环境变量,在这里我们以root用户以例。 #vi /root/.bash_profile //打开root用户.bash_profile文件 在root用户.bash_profile文件中设置环境变量,在此文件里面添加如下内容: QTDIR=/usr/local/qt-x11-free-3.2.1 PATH=$QTDIR/bin:$PATH MANPATH=$QTDIR/doc/man:$MANPATH LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export QTDIR PATH MANPATHLD_LIBRARY_PATH 添加完上面信息后按ESC键,“Shife+:”组合键回到vi编辑器命令行状态,输入wq!(强制保存退出) 三、添加完环境变量后,使环境变量立即生效:#source /root/.bash_profile 四、进入Qt解压缩的目录 #cd $QTDIR或#cd /usr/local/qt-x11-free-3.2.1都可以,因为在/root/.bash_prof ile文件已经定义了环境变量QTDIR=/usr/local/qt-x11-free-3.2.1和export QTDIR 。

linux下种定时执行任务方法

(1)at 命令 假如我们只是想要让特定任务运行一次,那么,这时候就要用到at 监控程序了。 设置at 命令很简单,指示定运行的时间,那么就会在哪个时候运行。at 类似打印进程,会把任务放到/var/spool/at 目录中,到指定时间运行它。at 命令相当于另一个shell ,运行at time 命令时,它发送一个个命令,可以输入任意命令或者程序。at now + time 命令可以 在指示任务。 假设处理一个大型数据库,要在别人不用系统时去处理数据,比如凌晨3 点10 分。那么我们就应该先建立/home/kyle/do_job 脚本管理数据库,计划处理/home/kyle/do_job 文件中的结果。正常方式是这样启动下列命令: # at 2:05 tomorrow at>/home/kyle/do_job at> Ctrl+D AT Time 中的时间表示方法 时间例子说明 Minute at now + 5 minutes任务在 5 分钟后运行 Hour at now + 1 hour 任务在 1 小时后运行 Days at now + 3 days任务在3 天后运行 Weeks at now + 2 weeks 任务在两周后运行 Fixed at midnight任务在午夜运行 Fixed at 10:30pm 任务在晚上10 点30 分 注意:一 默认为不启定要检查一下atq 的服务是否启动,有些操作系统未必是默认启动的, 而ubuntu 默认为启动的。检查是否启动,用service atd 检查语法, linux 用 service atd status 检查atd 的状态,用service atd start 启动atd 服务。 查看at 执行的具体内容:一般位于/var/spool/at 目录下面,用vi 打开,在最后一部分

相关主题
文本预览
相关文档 最新文档