I am LAZY bones? AN ancient AND boring SITE

2008年 05月 04日 的归档

链接期的”undefined reference to”问题又一解

今天拿到公司的一个程序,在本机(ubuntu8.04)编译了一下,编译起见是一堆的警告:” 警告: 不建议使用从字符串常量到‘char*’的转换”,可以跳过去,但是到了链接期间,就又是可恶的 “undefined reference to”问题了,网上查了一些资料说是因为找不到 *.a/*.o 之类的库文件,或者是库文件里面没有相关的符号导致,但是我这程序原样复制到服务器里面,借给是可以编译的,而且提示错误的那个 .a 文件也是从服务器复制的,可以保证是一模一样的,但为什么本机编译就是不行呢?后来想到服务器是RHEL4,
gcc –version 的输出是: gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8)
g++ –version 的输出是: g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-47.3)
而我本机的 gcc和g++确都是 4.2.3 的新版本,会不会是编译器的版本不兼容呢?看makefile里面用的是 g++ ,所以我先安装了 g++-3.4 ,然后把makefile里面的 PUBCC = g++ 改为 PUBCC = g++-3.4 ,再编译的时候发现编译期间的警告没了,但是链接还是照样报错;于是又卸载了 g++-3.4,换成了 g++-3.3,再编译的时候,居然是一切正常,和服务器上的表现一样了….
最后: 虽然是找到了 链接期的”undefined reference to”问题 的又一个答案,但个人对编译器的不兼容问题表示忧虑.

VBox升级到 1.6.0 了.

Innotek被sun收购后的第一个版本,看版本号,感觉应该更新了不少东西,于是下来安装上了,发现logo和about对话框都换掉了,以前那个多操作系统的图片没了,很喜欢以前这个图片,以后可能看不到了,在这里贴下以示纪念:
老的About
说是有一堆更新,但是我能用到的还真没有多少,感觉就是无缝模式,又可以把上下两个panel的面积用起来了,记得一开始的时候也是这样的,在 1.5.6 里面改掉了,现在又改回来??而且无缝模式的时候,把所有已经打开的窗口最小化,屏幕还是会花掉的….