刚编译一个C程序出错了:
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccqBJuRJ.o
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld 返回 1
G了一下, 在编译时加上 -include /usr/include/errno.h 即可, 但不是很明白,做个记号
07月 24th, 2009 | Linux, 问题备忘 | 没有评论 »
夏天 武汉 炎热的天气 温度在30–40之间波动
处于顶楼的我,即使晚上干几下活就流汗如雨,因为白天阳光留下的余温,墙壁、席子都是热的,这个夏天怎么过啊?!!!
后来想到:
1、窗帘作为第一道防线,用书柜作为第二道防线,终于挡住了大部分从窗子里射进来的阳光
2、常拖地,用水吸收热量
3、把电脑搬到没有阳光照射的角落里
这样,即使是在中午也可以活下去,呵呵
07月 20th, 2009 | 写在生活的边上 | 没有评论 »
假设已经安装了freeglut3或是其他开发opengl程序的开发包,这些包的*.h文件一般在/usr/include/GL/目录下,若是在其它目录下只要改变目录即可,另外必须安装ctags 命令如下:
1
2
3
4
| sudo aptitude install ctags #安装ctags, 如果没有安装ctags
cd /usr/include/GL #若openGL库文件在其它目录,则换成相应的目录
sudo ctags -R #这一步将在该目录生成一个tags文件
cp tags directory # directory是编写openGL程序的目录 |
OK了,编写一个程序测试一下,在输入一个变量的部分字符后按Ctrl+N,可见如下效果,按方向键选择匹配的字符串再回车即可,截图:

05月 11th, 2009 | Linux, Vim | 没有评论 »
大概一年没有远程登录unix-center.net服务器了,由于实验的原因今日再次登录,打开终端,输入命令:
1
2
3
4
5
| ssh username@x4100.unix-center.net #username是在Unix-Center.net的帐户名,下同
Password: #第一次输入密码
Password: #第二次输入密码
Password: #第三次输入密码
#登录失败的信息.... |
???,密码没有错啊? 可能是很久没有登录了,需要再次激活,于是打开邮箱,找到unix-center.net所发的帐户确认邮件,点击链接,确认,再次登录:
1
2
3
4
| ssh username@x4100.unix-center.net
Password: #输入密码,终端出现以下输出:
Welcome to X4100.Unix-Center.Net. Please enjoy your stay.
-bash-3.00$ |
哈哈,登录成功,果然需要重新激活,Unix-Center.net不错,重新激活是个不错的做法,一是为安全、二是为节省资源
05月 10th, 2009 | Linux, Solaris | 没有评论 »
近来经常突然连不上网,即使是点击面板上的网络Network-Manager上的auto-eth0也连不上,更可恶的是点击auto-eth0后,提示说连上了,但是ubuntu 8.10的network-manager与8.04不同,似乎无法正确的配置网关,google了一篇文章,搞定了,过程如下:
1、卸载network-manager
sudo apt-get remove network-manager
2、编辑文件/etc/network/interfaces:
sudo gedit /etc/network/interfaces
保留这个文件中的(如果有的话):
auto lo
iface lo inet loopback
在后面加入:
auto eth0
#iface eth1 inet dhcp (如果有这一行代码,麻烦你在前加一个”#”,把它注释掉)
iface eth0 inet static
address 192.168.0.168 #这个IP地址,这些设置请根据你自己的情况填,不要抄我的
netmask 255.255.255.0 #子网掩码
gateway 192.168.0.1。 #网关
3. 配置DNS
sudo gedit /etc/resolv.conf
假设DNS服务器的IP地址是192.168.0.1, 本地电信DNS是202.96.128.86,文件内容为:
nameserver 192.168.0.1 #网关
nameserver 202.96.128.86 #本地电信DNS
4、重启网络
sudo /etc/init.d/networking restart
05月 8th, 2009 | Linux | 没有评论 »
昨天收到Sun的-Sun IT优化解决方案全国大巡展的邀请函邮件,今天收到Sun Microsystems雇主品牌调查邮件,也许Sun要向世界再次展示自己优先的技术,同时也在思量自己对世界的影响,我不禁为Sun感到悲悯
在4月20日Oracle和Sun宣布收购案后,世界纷纷对这起收购案投去了特殊的目光,关于“Sun”、”Oracle”和“Sun Oracle”的新闻到达一个至高点,因为人们看到世界IT业有了一个新的格局。有人在思考这起收购案对IT业的影响,有人想知道Oracle收购Sun之后到底会怎么做,有人担心Mysql、Sparc、Solaris的命运,有人看着看着就想自己动手来整合Oracle和Sun,无疑Sun的产品对世界有强大的影响力和吸引力。
就本人而言,Sun是一个有Unix操作系统先进技术、有许多优秀的产品、处理器很强大、最近几年对开源支持里度非常大、推出了OpenSolaris系统,一直推进在中国的发展的公司。他的Solaris 10 改进非常大,理论很超前,有很多东西给了我灵感和动力。当然希望Sun的优先技术和思想得到保全。然而我只能希望…
希望Sun会走的更好…
04月 28th, 2009 | Solaris | 没有评论 »
心血来潮,玩了一下openGL的程序
sudo aptitude install freeglut3-dev freeglut3-dbg #安装freeglut3
一个北斗七星的程序firstgl.c, 简陋的很:
#include <GL/glut.h>
// ———————–myInit——————–
void myInit(void) {
glClearColor(1.0, 1.0, 1.0, 0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glPointSize(5.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}
// ———————–myDisplay ——————–
void myDisplay(void) {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINTS);
glVertex2i(220, 210);
glVertex2i(274, 274);
glVertex2i(275, 273);
glVertex2i(329, 283);
glVertex2i(394, 301);
glVertex2i(439, 267);
glVertex2i(489, 390);
glEnd();
glFlush();
}
// ———————–main——————–
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(640, 480);
glutInitWindowPosition(100, 150);
glutCreateWindow(”my first attempt”);
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
编译:
gcc firstgl.c -o firstgl -lglut
执行:
新窗口一闪就不见了,突然想起google earth也有类似的问题,于是关闭3D效果,再次运行之,简陋的北斗七星出现了:

3D效果(Exta)下无法显示任何内容(除了窗口一闪即逝),正常显示(Normal)模式下,只见七星不见Bordor, 无效果(None)模式下,全部显示 why ? how ?
04月 28th, 2009 | Linux, Vim, 问题备忘 | 没有评论 »
04月 24th, 2009 | 写在生活的边上 | 2 个评论 »
比较喜欢OpenSolaris中的图表显示, so do it:
1、在http://dlc.sun.com/osol/jds/downloads/extras/nimbus/ 下载最新的 nimbus主题包, 比如nimbus-0.1.2.tar.bz2
2、安装build-essential、intltool、libgtk2.0-dev、icon-naming-utils
sudo aptitude install build-essential intltool libgtk2.0-dev icon-naming-utils
3、安装命令如下
1
2
3
4
5
6
| cd 下载的主题包的目录 #切换目录
tar xjf nimbus-0.1.2.bz2 #解压主题包到当前目录, 假设主题包名是nimbus-0.1.2.tar.bz2
cd nimbus-1.1.2 #假设解压后的文件夹名是nimbus-1.1.2
sudo ./configure --prefix=/usr #注意prefix前面是两个"-"
sudo make
sudo make install |
4、系统–>首选项–>外观,选择Nimbus,最新的有几个Nimbus主题可选
参考自这里,但是做了点修改,因为新的版本有些操作不需要。
两个截图:


04月 21st, 2009 | Linux | 2 个评论 »
很高兴装上了opensolaris 8.11, 设置了网络, 设置了grub可以启动ubuntu, 接下来就是安装软件, 如果安装不了开发软件它什么都不是
可是用package manager安装gcc既然卡在下载SUNWbinutils上了,说网络有问题, 即使是使用unix-center的IPS也是如此, openoffice 也是如此,真让人失望, 这几天时间紧, 切卡在这个没意思的地方, 背
opensolaris的软件包管理器packege manager很像ubuntu的新立德, 可是每次打开它都要重新扫描软件信息库, 选择了软件后还得长时间分析依赖关系等问题, 然后才是下载安装, 时间啊…. Linux的只要给了正确的软件名就立马下载安装, 包括很快的处理软件包依赖关系, 工作效率非常之高, opensolaris 汗颜的同时应该认真的改进
04月 16th, 2009 | Solaris | 6 个评论 »
1、编译程序
用gcc编译程序时添加 -fPIC -c标记
PIC命令行标记告诉GCC产生的代码不要包含对函数和变量具体内存位置的引用, why?
gcc -fPIC -c [otherflag]{filename.c [filename.c]}
2、创建或添加到共享函数库
使用 -shared 标记
gcc -shared [oterflag] -o {[path/]libname.so}{filename.o}
3、使用创建的共享函数库
gcc -o binname -lname -L{path} file.o
命令:ldd binname
用于发现二进制文件binname需要使用的函数库
指定动态链接库*.so文件路径
04月 11th, 2009 | Linux | 没有评论 »
老师叫我做一个集成LInux下gdb,gcc,vim的C/C++的小型IDE,主要是把GDB的文字调试功能变成视窗调试,先打开NetBeans和Eclipse看看,虽然不可能做的像它们那么强大,但可以学习它们的优点,NetBeans还好,很有难度,但在预料之中,但是Eclipse就让我很吃惊,从其界面的灵活性到调试功能的全面性精确性让我非常的震撼,主要是界面让我无地自容,因为我现在做界面的水平属于小学级的,而Eclipse是研究生级别的,另外非常佩服其调试功能非常到位,程序在它面前是透明的(除了我不知道的)。
接下来试试Eclipse的vimplugin插件,折腾了半天,vimplugin只能在编辑java的时候才起作用,对*.c、*.cpp文件不起作用,真让人伤心,为什么不让我在Eclipse下用vim呢?如果能的话,我可以在Eclipse下开发我的可爱的小IDE,也许更有灵感,现在我正在Eclipse与vim+gcc之间徘徊。
唉,乱我心者今日之日多烦忧……
[后记] 在右击文件按钮->选择[open with]->gvim,成功用gvim打开*.c *.cpp文件,不过gvim编辑器没有默认编辑器的一些功能,比如在编辑器中设置断点,待研究
04月 11th, 2009 | Linux | 没有评论 »