近日由于工作上的问题,需要把一个Fedora 17下工程移植到Ubuntu10.04虚拟机下,本来以为主要的工作可能会花在环境配置上,只要搞定编译问题,就基本上算完成了。但事情往往不是我们所想的那样,有时候看上去简单的事情其实很麻烦。
确保代码未做任何改变;
首先,在ubuntu中安装好工程需要的各个库,配置好编译环境,编译通过;
然后在运行时,确出现了错误,一大串 Memory map信息,从提示的库信息来看,应该与系统库有关。而又看到*** stack smashing detected ***, ./app terminated,google一下,说是与GCC有关,说Ubuntu 会默认开启GCC的stack smashing proctect 功能,而Fedora 17下没开。
解决办法有:
1、 在ubuntu10.04下,关闭GCC的stack smashing proctect功能,