在MacOS X编译64位erlang

最近看到MacOS X 10.6 10a354出来了,应该比较稳定,所以就开始安装了。
的确比前几个版本有了比较大的改进,感觉很不错,不准备格回去安装10.5.7了。

Mac下面macport是个好东西,要什么东西,直接安装就好了,很方便,唯一不爽的就是,安装一大堆重复的东西。但在10.6下面,macport开始不工作了。我想安装erlang,装了一大堆的东西以后,卡在了libsdl这个东西上面,死活过不去,源码怎么改也不行。。。

心想,算了,还是用erlang的源码自己编译吧。下载了源码otp_src_R13B.tar.gz,解压,然后

./configure
make

看看运行,记得是会出错的。等了一会,果然报错,提示其中有些lib和平台不相符。经过查找,发现configure的脚本写得有问题,因为10.6的内核是64位的,gcc default的就是64位的。但在一些第三方包中,是把-arch i386这样的东西写死了。

然后再改,修改 configure 成这样:
2694: CFLAGS="-m64 -arch x86_64 $CFLAGS"
2695: export CFLAGS
2696: LDFLAGS="-m64 -arch x86_64 $LDFLAGS"

然后再修改 ./lib/wx/c_src/gen/gl_funcs.cpp的 4563,4578,4587,4652四行,把(int)改成(long),因为64bit,长度不一样了。

然后就可以
./configure --prefix=/opt/local/ --enablthreads --enable-smp-support  --enable-darwin-64bit CC=/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2
make
sudo make install


这样也好,不用安装很多重复的lib

你可能感兴趣的:(C++,c,erlang,gcc,脚本)