macports 使用技巧: gcc版本切换
macports 使用技巧: gcc版本切换
FreeBlues 发表于3年前
macports 使用技巧: gcc版本切换
  • 发表于 3年前
  • 阅读 191
  • 收藏 2
  • 点赞 1
  • 评论 28

腾讯云 新注册用户 域名抢购1元起>>>   

macports 使用技巧: gcc版本切换


目录

  • [Macport的安装位置]
  • [自我更新]
  • [更新所有过期包]
  • [更新指定包]
  • [检查包的依赖情况]
  • [更新失败时删除临时文件]
  • [抓取某包的源代码]
  • [选择编译使用的 gcc clang llvm等]

Macport的安装位置

Macport会把自己和所有的包都安装在 /opt/local/ 目录下,如果你的 macport 出了问题,一时半会儿解决不了,那么终极办法就是把这个目录改名,重新安装一个全新的 macport,如下:

'''Air:opt admin$ sudo mv /opt/local ~/macports Password: Air:opt admin$

自我更新

sudo port -v selfupdate

更新所有过期包

sudo port -v upgrade outdated

更新指定包

sudo port -v install 包名

检查包的依赖情况

sudo port deps 包名

更新失败时删除临时文件

sudo port -v clean 包名

抓取某包的源代码

sudo port mirror 包名

抓取后的源文件tar包放在如下目录中 /opt/local/var/macports/distfiles/包名,可以进到该目录中,解压缩源文件,然后手动执行编译,假设包为 dbus ,如下:

 cd /opt/local/var/macports/distfiles/dbus

解压
 
配置
./configure --prefix=/opt/local

编译
make

选择编译使用的 gcc clang llvm等

如下:共有下面几种参数

port select [--list|--set|--show|--summary] <group> [<version>]

Air:~ admin$ sudo port select --summary    
Name    Selected  Options    
====    ========  =======    
clang   none      mp-clang-3.3 none    
db      none      db46 none    
gcc     none      apple-gcc42 gcc46 mp-gcc45 mp-llvm-gcc42 none    
llvm    none      mp-llvm-3.3 none    
maven   none      maven2 none    
python  none      python25-apple python26-apple python27 python27-apple none    
Air:~ admin$  
共有 人打赏支持
粉丝 92
博文 268
码字总数 483689
评论 (28)
light-logos
嗨,good afternoon!我在自学英语呢!哈哈。额,有几个问题:
1、在CCL1.6中使用SHELL命令的方法,我看了你贴出来的那个函数,就是(ccl:program...)好像是这么写的,我试过了,不行。
2、有一些函数什么的怎么用不了呢?比如:%read-form、read-feature等等。
3、有一些你给出的动态变量用不了,提示说不存在,比如:*default-external-format*。
4、对于函数subst中的双重递归,我感到很复杂,你能否简化一下?或者用不用递归来实现?
(defun our-subst (new old tree)
(if (eql old tree)
new
(if (atom tree)
tree
(cons (our-subst new old (car tree)) (our-subst new old (cdr tree)))))); 来源于《ansi common lisp》第三章。
5、我的lispbox07可以显示中文,但是加载的文件就会出现乱码。
light-logos
嗨,good afternoon!我在自学英语呢!哈哈。额,有几个问题:
1、在CCL1.6中使用SHELL命令的方法,我看了你贴出来的那个函数,就是(ccl:program...)好像是这么写的,我试过了,不行。
2、有一些函数什么的怎么用不了呢?比如:%read-form、read-feature等等。
3、有一些你给出的动态变量用不了,提示说不存在,比如:*default-external-format*。
4、对于函数subst中的双重递归,我感到很复杂,你能否简化一下?或者用不用递归来实现?
(defun our-subst (new old tree)
(if (eql old tree)
new
(if (atom tree)
tree
(cons (our-subst new old (car tree)) (our-subst new old (cdr tree)))))); 来源于《ansi common lisp》第三章。
5、我的lispbox07可以显示中文,但是加载的文件就会出现乱码。
light-logos
我改一下:在lispbox07中有一些你给出的动态变量用不了,提示说不存在,比如:*default-external-format*。
light-logos
还有一个问题,嗯,那个破坏性操作与非破坏性操作有没有什么原则?有时候会写一些破坏性函数,但是自己不知道,结果得反复的查代码才能找到错误。
FreeBlues

引用来自“light-logos”的评论

嗨,good afternoon!我在自学英语呢!哈哈。额,有几个问题:
1、在CCL1.6中使用SHELL命令的方法,我看了你贴出来的那个函数,就是(ccl:program...)好像是这么写的,我试过了,不行。
2、有一些函数什么的怎么用不了呢?比如:%read-form、read-feature等等。
3、有一些你给出的动态变量用不了,提示说不存在,比如:*default-external-format*。
4、对于函数subst中的双重递归,我感到很复杂,你能否简化一下?或者用不用递归来实现?
(defun our-subst (new old tree)
(if (eql old tree)
new
(if (atom tree)
tree
(cons (our-subst new old (car tree)) (our-subst new old (cdr tree)))))); 来源于《ansi common lisp》第三章。
5、我的lispbox07可以显示中文,但是加载的文件就会出现乱码。
1.这样 (ccl::name) 2.同上,(ccl::%read-form) 3.不清楚你是怎么用的,在 REPL 中可以这样用: CL-USER> *default-external-format* :UNIX CL-USER> (defparameter *x* nil) *X* CL-USER> *x* NIL CL-USER> *default-external-format* :UNIX CL-USER> (setq *x* *default-external-format*) :UNIX CL-USER> *x* :UNIX CL-USER> 4.恭喜啊,我还没怎么看ANSI COMMON LISP那本书呢,不过递归的思想建议还是好好钻研一下,尤其是尾递归,可以把 SCIP 作为参考书,这一点可以说是 LISP 的精华。 5.这个可以参考我在 github 上的那个 .emacs 的配置
FreeBlues

引用来自“light-logos”的评论

还有一个问题,嗯,那个破坏性操作与非破坏性操作有没有什么原则?有时候会写一些破坏性函数,但是自己不知道,结果得反复的查代码才能找到错误。
我觉得这一点现在学习阶段倒是没必要过分考虑,不过要是想追求纯粹的函数式编程的话,可以参考冰河翻译的那本书中相关章节提到的那些原则。
light-logos
1、(ccl::name "/bin/sh" (list "-c" "echo 123") :input nil :output *standard-output*),不行!
2、问题解决。
3、输入*default-external-format*后回车,得到错误:
Unbound variable: *DEFAULT-EXTERNAL-FORMAT*
[Condition of type UNBOUND-VARIABLE]
4、嘻嘻,我是把所有的中文资料结合起来一起看的,不是先看这个,再看那个。
5、我查查看看。
light-logos
递归让我郁闷的原因在于我不清楚每一步都会发生些什么,如此我还怎么写递归?我曾为了string<、>、=、<=、>=、/=这六个函数用了两天多的时间,目的就是搞清楚它们究竟是如何运行的,否则我会迷惑,不知道什么时候用、怎么用、结果如何。至于我说的这个破坏性操作我认为挺重要的,比如我写的那个小游戏,我当时正好看完了practical common lisp 的集合那一章,我就想练练手,看看到底学会了没有,其中我就发现了这个问题,当时废了好几个小时的时间才让它得以运行,其实就是加了个copy-list或者copy-seq。
light-logos
lispbuilder-sdl这个库在哪儿有下载?怎么在lispbox07中安装?能否给个详细的说明,对于我这个比较笨的初学者来说实在是不知道怎么下手,我问了两个吧友,结果没了下文。。。麻烦你教教俺。
light-logos
老兄,你是唯一一个不厌其烦的给予详细解答的黑客,不说谢谢了。不过我不喜欢老是被人给予,你说说我能为你做点啥?我会尽力而为。
light-logos
还有个问题,cl中有没有C语言中的读取键盘缓冲区的函数?没有的话能否自己写一个?
init-type-predicates使用ccl::也打不开,在lispbox07中,char ,alt+.。
FreeBlues

引用来自“light-logos”的评论

lispbuilder-sdl这个库在哪儿有下载?怎么在lispbox07中安装?能否给个详细的说明,对于我这个比较笨的初学者来说实在是不知道怎么下手,我问了两个吧友,结果没了下文。。。麻烦你教教俺。
有两种安装方式,先说我觉得最简单的一种:用quicklisp安装,前提是你安装好了quicklisp,只要在 REPL 里执行 (ql:quickload "lispbuilder-sdl") 就可以了;另外一种方法是通过 ASDF 安装,这里有个不错的教程 http://blog.csdn.net/longsooooon/article/details/6720763
FreeBlues

引用来自“light-logos”的评论

老兄,你是唯一一个不厌其烦的给予详细解答的黑客,不说谢谢了。不过我不喜欢老是被人给予,你说说我能为你做点啥?我会尽力而为。
不必客气,教学相长
FreeBlues

引用来自“light-logos”的评论

1、(ccl::name "/bin/sh" (list "-c" "echo 123") :input nil :output *standard-output*),不行!
2、问题解决。
3、输入*default-external-format*后回车,得到错误:
Unbound variable: *DEFAULT-EXTERNAL-FORMAT*
[Condition of type UNBOUND-VARIABLE]
4、嘻嘻,我是把所有的中文资料结合起来一起看的,不是先看这个,再看那个。
5、我查查看看。
1、name 貌似不是 ccl 的函数。 3、不知是否版本问题,我的ccl是1.8的。
FreeBlues

引用来自“light-logos”的评论

还有个问题,cl中有没有C语言中的读取键盘缓冲区的函数?没有的话能否自己写一个?
init-type-predicates使用ccl::也打不开,在lispbox07中,char ,alt+.。
应该有,你查一下 hyperspec ,http://www.lispworks.com/documentation/HyperSpec/Front/index.htm
light-logos

引用来自“light-logos”的评论

还有个问题,cl中有没有C语言中的读取键盘缓冲区的函数?没有的话能否自己写一个?
init-type-predicates使用ccl::也打不开,在lispbox07中,char ,alt+.。

引用来自“FreeBlues”的评论

应该有,你查一下 hyperspec ,http://www.lispworks.com/documentation/HyperSpec/Front/index.htm
老大,那都是英文的。。。
light-logos

引用来自“light-logos”的评论

1、(ccl::name "/bin/sh" (list "-c" "echo 123") :input nil :output *standard-output*),不行!
2、问题解决。
3、输入*default-external-format*后回车,得到错误:
Unbound variable: *DEFAULT-EXTERNAL-FORMAT*
[Condition of type UNBOUND-VARIABLE]
4、嘻嘻,我是把所有的中文资料结合起来一起看的,不是先看这个,再看那个。
5、我查查看看。

引用来自“FreeBlues”的评论

1、name 貌似不是 ccl 的函数。 3、不知是否版本问题,我的ccl是1.8的。
问题解决:1、使用(ccl::os-command string) 2、前面要加上ccl::。还有个问题:cl:与cl::,ccl::与ccl:有什么不同,一个有两个冒号,另一个有一个冒号。
light-logos

引用来自“light-logos”的评论

老兄,你是唯一一个不厌其烦的给予详细解答的黑客,不说谢谢了。不过我不喜欢老是被人给予,你说说我能为你做点啥?我会尽力而为。

引用来自“FreeBlues”的评论

不必客气,教学相长
ok!
light-logos

引用来自“light-logos”的评论

lispbuilder-sdl这个库在哪儿有下载?怎么在lispbox07中安装?能否给个详细的说明,对于我这个比较笨的初学者来说实在是不知道怎么下手,我问了两个吧友,结果没了下文。。。麻烦你教教俺。

引用来自“FreeBlues”的评论

有两种安装方式,先说我觉得最简单的一种:用quicklisp安装,前提是你安装好了quicklisp,只要在 REPL 里执行 (ql:quickload "lispbuilder-sdl") 就可以了;另外一种方法是通过 ASDF 安装,这里有个不错的教程 http://blog.csdn.net/longsooooon/article/details/6720763
在安装的过程中报错了,得这样: ;(ignore-errors (ql:quickload "lispbuilder-sdl"))加载SDL库的方法为首先执行该表达式,然后执行下面这个表达式。 ;(cffi:load-foreign-library "d:/sdl.dll")
light-logos
我想在ccl里使用IBM智能词典,也就是他俩进行通信,你看能不能给解决解决。
×
FreeBlues
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: