今天在网上见到了John R. Levine的Linkers and Loaders的中文译本,pdf文件下载链接。
Tag Archives: Programming
如何自定义moc和uic生成的文件的扩展名 – cmake篇
cmake官方文档同样没有涉及,在邮件列表中讯问后,查看相应文件找到了解决方案。
针对QT4_WRAP_CPP和QT4_WRAP_UI还有资源文件:
cmake下的Modules/FindQt4.cmake文件中如下三行在起作用:
1 |
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/moc_${outfile}.cxx) |
1 |
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) |
1 |
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) |
针对QT4_AUTOMOC方式,需要修改这两行:
1 |
STRING(REGEX MATCHALL "#include +[^ ]+\.moc[">]" _match "${_contents}") |
1 |
STRING(REGEX MATCH "[^ <"]+\.moc" _current_MOC "${_current_MOC_INC}") |
需要把其中的.moc换成.myown什么的。当然QT4_AUTOMOC的方式就是需要在你的源代码最后加入一行include的,还要做一个修改:
1 |
#include "yourclass.moc" |
要改为:
1 |
#include "yourclass.myown" |
不过这一次看来cmake要强大好多呀,完全可以自定制。
如何自定义moc和uic生成的文件的扩展名 – qmake篇
这些内容针对Qt 4,在官方文档中没有提及。
在.pro文件中加入下面两行:
1 |
QMAKE_EXT_CPP = .cxx .cppQMAKE_EXT_H = .hxx .h |
之后uic就可以生成.hxx结尾的头文件,moc就可以生成.cxx结尾的源文件了。
另外一个需要注意的是,在这个文档中提到了:
http://doc.trolltech.com/4.3/uic.html
“You must also remember to add ui_foo.h to your HEADERS (substitute your favorite name).”
在你改完.pro文件后,你需要把新的“ui_foo.hxx”添加到你的头文件中了。
注释:
2007-06-01 好像发现在Makefile中有关qmake_image_collection的后缀名称也跟着变化了。
Qt中浮点数转化字符串
今天鼓捣这个浮点数转化成字符串的问题,默认情况是使用科学计数法,不太好看。网上查了一下,有个std库的例子,用sstream和string的,不过我这里测试了一下,好像没有效果。
探索过程中,其实就是文档阅读和小代码尝试,发现了两条路,一条是:
1 2 3 4 5 6 7 8 9 10 11 |
double x = 12345678900000.0; QString s; QTextStream ts; ts.setString( &s ); ts.setRealNumberNotation( QTextStream::FixedNotation ); ts.setRealNumberPrecision( 2 ); ts << x; ts.flush(); |
另一条更简洁的路是:
1 2 3 |
double x = 12345678900000.0; QString s = QString::number( x, 'f', 2 ); |
不过这两种方式都限定了小数点后的精度。如果我想要0.0000001234的字符串“0.0000001234”的代码,还没有找到。
一个有关程序员的笑话
A programmer is smoking a cigarette, and his friend says to him “Why are you
doing that? Didn’t you see the warning on the package that says those can
cause cancer?”
The programmer replies “I only care about errors, not warnings.”
我的第一个KDE4应用
当然还是Hello World了。
OpenSuSE 10.2最小的X安装,然后装入OpenSuSE KDE Team每周根据KDE 4的svn做好的包就可以了。我只是装了cmake, qt4, strigi, kdelibs, kdepimlibs, kdebase,当然下面文档中提及的KDE 4所依赖的那些东西也得装。然后就可以Hello World了。
gcc编译方式和cmake编译方式都已经通过,又是一些输入错误,下次还是好好copy/paste吧。
1 |
gcc main.cpp -o tutorial1 -I/usr/include -I/usr/include/Qt -I/usr/include/QtCore -I/usr/include/KDE -L/usr/lib -lQtCore -lQtGui -lkdeui -lkdecore |
参考的文档:
KDE 4 on OpenSuSE 10.2
Getting Started/Build/KDE4
Getting Started/Set up KDE 4 for development
Development/Tutorials/Programming Tutorial KDE 4/First program
今天组里的同事发了一个漫画,还比较搞
程序的易用性-小引
题目很大,今天在水木看到有人问什么是附件,是attachment么?
于是就想起了KDE下的KMail,我在邮件里写了attachment里面第一个、第二个等等文件都是什么,但忘了贴附件了,然后就点发送,它竟然问我你的attachment呢?真有意思。不知道支不支持中文“附件”。
公历与中国农历的转换算法
http://www.math.nus.edu.sg/aslaksen/calendar/chinese.shtml
只找到了这样一个介绍的页面,目前主要是查表,没有一个通用的算法,网上去搜了搜,好像搞这个的都是业余的,专业搞天文的里面没有搜到,不知道是不是这个问题太简单了。
Programming from the Ground Up Book
Programming from the Ground Up Book
很入门的一本书,有些汇编和gdb的知识,还有一些编程的基础知识,几本看完了,下一步可以看看intel x86架构的书了,没办法,这个最广泛。