Apple Mac OS 下编译Emacs 23

1. macport编译

首先,需要安装苹果公司的xcode,这个东西随机光盘上面可以找到,不过老张我推荐最好去下载最新版本的xcode
下载地址: http://developer.apple.com/tools/xcode/
然后,安装macport,选择合适的版本下载安装
下载地址:http://www.macports.org/install.php
当这些都安装完了,就可以用macports安装emacs23了,当然macports提供的emacs23版本有两个,一个是比较稳定的,一个则是cvs的
分别可以使用: 
#sudo port install eamcs-app 或 #sudo port install emacs-app-devel 来安装

2. 使用cvs下载源代码安装
使用macports来安装emacs23不能选择使用gtk,所以有的toolbar无法使用,当然使用cvs来安装只要进行合适的配置就可以使用gtk了,不过你需要完全使用gtk还是,需要通过port安装gtk。
首先,使用port安装gtk和其他依赖包,并下载emacs cvs
#sudo port install gtk2 jpeg tiff libpng giflib
#cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
 
然后,configure
#cd emacs 
a.你可以使用苹果默认的 
#./configure --with-ns 
这样可以生成apple app,但无法使用gtk,老张我觉得这个和直接使用macport安装区别不大。
b.使用gtk
#./configure --with-x-toolkit=gtk --prefix=/usr 
这样就可以使用gtk了
现在开始编译
#make -j3 bootstrap
#make install
 


2.1. 编译错误解决


--------------------------------------------------------------------------------
dereferencing pointer to incomplete type png_ptr->jmpbuf


src/image.c
png_jmpbuf(png_ptr)    =>    png_ptr->jmpbuf


<----------------------------------- Next -------------------------------------->
Bug#8223: (http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8223)


unexec: unrecognized section name in __DATA segment
make[2]: *** [bootstrap-emacs] Error 1
make[1]: *** [src] Error 2
make: *** [bootstrap] Error 2
................


根据在官方maillist中查到的结果,这是由于 src/unexmacosx.c文件中, copy_data_segment()函数中没有对名称为__got的区段进行判断导致出错,自行修改下代码复制这个区段即可。
src/unexmacosx.c line 828
+ || strncmp (sectp->sectname, "__got", 16) == 0


<----------------------------------- Next -------------------------------------->
Bug#8395(http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8395)
.
.
.
unexec: cannot write section __data
make[2]: *** [bootstrap-emacs] Error 1
make[1]: *** [src] Error 2
make: *** [bootstrap] Error 2
....................


根据在官方maillist中查到的结果,似乎是要求gcc在lion上禁止地址空间随机化功能,我不是很确定具体原因是否如此,读完maillist也暂时无解。MachObje的一点资料(http://hackage.haskell.org/packages/archive/macho/0.22/doc/html/Data-Macho.html). 
对于23.3 Release的修正方法: 
src/s/darwin.h Line 184
-  #define LD_SWITCH_SYSTEM_TEMACS -prebind LIBS_NSGUI -Xlinker -headerpad -Xlinker HEADERPAD_EXTRA
+ #define LD_SWITCH_SYSTEM_TEMACS -prebind LIBS_NSGUI -Xlinker -headerpad -Xlinker HEADERPAD_EXTRA -fno-pie


<----------------------------------- Next -------------------------------------->


至此编译上没有什么问题了,但是编译出来的Emacs还是没法用,没有标题栏,没法最大最小化,没法移动,而且位置出现在最左上角,很挫很受伤啊.....解决这个问题需要另一个Patch, 我在官方的bugtrace上没搜到patch, 而是在 MacPort上找到了patch.. (https://trac.macports.org/attachment/ticket/30268/patch-fix-title-bar.diff)
src/nsterm.m Line 5109
- styleMask: (NSResizableWindowMask |
+ styleMask: (NSTitledWindowMask | 
+ NSResizableWindowMask | 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值