ls ./*.[^c,h]*
一个简单的正则,取出所有不是用c或者h开头,并且后缀是一个或者多个字符的文件,一般就是 .o文件, .la文件, .lo, .y文件这些编译的中间文件.
--
caosuwei
ls ./*.[^c,h]*
一个简单的正则,取出所有不是用c或者h开头,并且后缀是一个或者多个字符的文件,一般就是 .o文件, .la文件, .lo, .y文件这些编译的中间文件.
我的诺基亚手机没有秒表,总要找同事借,干脆自己写了一个
精度是 microsecond
Warning: bad ps syntax, perhaps a bogus '-'? See
http://procps.sf.net/faq.html
以前一直没有注意这个警告,今天查了一下man,上面是这样解释的:
ps -aux 和 ps aux是不一样的,POSIX和UNIX标准上,ps -aux是打印出所有属于
username是"x"的用户的进程.如果这个用户不存在的话,作为一个兼容手段,再按照
ps aux执行,并且打印出一个警告信息出来.
$ ps --version
procps version 3.2.7
今天看了看boost::asio里面附带的几个示例程序.主要是chat那个.
大概了解了点asio的处理这类类似协议解析事件的方法.
解析协议的处理方法,一般做法就是写一个状态机.类似于lighttpd中处理连接的connection_state_machine(),定义了一系列的状态,处理完一段就切换到另一个状态,直至连接终止.
在asio中,对每个异步的调用,比如boost::asio::async_write(), boost::asio::async_read(),函数签名中都有一个handler参数,指定在异步调用完成之后的后续处理.
示例代码中就是在这个参数中指定下一步的处理函数,来完成状态的转换.
但其实这个东西完全可以自己设置一下,也算了解一下Qt的程序是怎么编译出来的.
在工程的属性里面加上相应的
Additional Include Directories 加上
Qt\include\QtCore;Qt\include\QtGui;Qt\include,
c/C++->Perpreocessor->Preprocessor Definitions里面加上
_WINDOWS;UNICODE;QT_LARGEFILE_SUPPORT;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;WIN32
linker->General->Additional Library Directories里面加上Qt\lib,
linker->Input->Additional Dependencies里面加上 Qt\lib\qtmaind.lib
Qt\lib\QtGuid4.lib Qt\lib\QtCored4.lib
以上这些都能在demo里面找到例子,和一般的库的添加过程一样,如果有错都能自己
对照着改正过来.
但其实qmake做的一件最重要的事情是下面这个.
在处理Q_OBJECT宏的方式上,Qt其实是在qmake生成的makefile里面调用了Qt\bin\
moc.exe
默认的处理方式是对包含Q_OBJECT宏的aa.h文件进行处理,生成一个moc_aa.cpp
如果自己配置,就要在这个包含Q_OBJECT宏的aa.h的属性里面加一个Custom Build Step
Custom Build Step->General->Command Line里面加上 moc $(InputFileName) -p
../ > moc\moc_$(InputName).cpp
Custom Build Step->General->Outputs里面加上moc_$(InputName).cpp
这两个文件名可以自己定义.
------------------EOF---------------EOF------------------