以前在Mac上装过port,后来改为brew。但是原来port装在/opt/local下的很多程序没删掉,path路径也没改,导致很多程序被重复安装,配置混乱。最后我痛下狠心用port uninstall installed将全部port已安装的程序统统删掉!然后rm -rf /opt/local。接着在.bash_profile里将port原来设置的路径统统删掉鸟。

因为geany要用GTK,上面port和brew都装了gtk库,估计版本不同,结果编译后程序能运行起来,但是点击某一菜单项(比如open和about)后会崩溃!在删掉port配置后再次编译,这个现象没有鸟!

但是geany运行老是提示不能打开display!按照网上的设置:export DISPLAY=localhost:0.0,然后host +的做法得以解决。不过每次运行granny总要冒出一个X11服务器来,颇为不爽!我记得原来低版本的geany运行就不需要啊!

geany是运行起来了,但是最上面的标题栏没有!无法移动和最大最小化。遂安装mac下最新版的X11程序,问题又解决了。

geany运行老是显示警告:

(geany:1331): Gtk-WARNING **: 找不到图标“text-plain”。“hicolor”主题也没有找到,可能您需要先安装它。

您可以从下面的位置获得一个副本:

http://icon-theme.freedesktop.org/releases

(geany:1331): Geany-WARNING **: failed to load icon 'classviewer-var': 图标“classviewer-var”未出现在主题中

(geany:1331): Geany-WARNING **: failed to load icon 'classviewer-method': 图标“classviewer-method”未出现在主题中

(geany:1331): Gtk-WARNING **: Error loading theme icon 'geany-save-all' for stock: 图标“geany-save-all”未出现在主题中

遂按照提示下载hicolor-icon-theme-0.14.tar.xz包,然后用如下命令安装:

./configure -prefix=/usr

sudo make install

再次运行geany,世界清净鸟!!!

前面编译geany的时候还有麻烦!开始老是说神马找不到GTK包,提示:Package 'xcb-shm', required by 'cairo', not
found
重装gtk,cairo均无效,后来得知PKG_CONFIG_PATH没有设置正确,pkg-config需要各个程序lib下目录pkgconfig里的各种pc文件!:

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig


接着说找不到gettext,发现原来的gettext安装在/opt/local下已被删掉!后来用brew装的路径不在path中,只好手动添加其bin路径至path!

在没删port之前老是提示无法找到神马.la文件,只好一个一个找需要的dylib然后手动生成对应的.la文件,后来太麻烦,用ruby写了一个自动生成的工具:

#!/usr/bin/ruby

def get_lib_names(path,name)
	just_name = name.split(".")[0]
	names = []
	Dir.chdir(path) do |path|
		names = `ls #{just_name}*`.split("\n")
	end
	names
end

def make_la_file(path,names)
	dot_a = names.find {|x|x=~ /.+\.a/}
	dot_dylib = names.find {|x|x=~ /([^0-9])\.dylib/}
	n_dot_dylib = names.find {|x| x=~/([0-9])\.dylib/}
str = <<START_TEXT
# Generated by libtool (GNU libtool) 2.4.2
dlname='#{n_dot_dylib}'
library_names='#{n_dot_dylib} #{dot_dylib}'
old_library='#{dot_a}'
installed=no
START_TEXT

	la_name = names[0].split(".")[0]+".la"
	Dir.chdir(path) do |path|
		#{}`touch #{la_name}`
		File.open(la_name,"w") do |f|
			f.write str
		end
	end
end

ret = `make 2>&1 1>/dev/null`

r = /^libtool: .+ `(.+)'/
s = ret.split("\n")[0]
m = s.match(r)
path,name = File.split m[1]

names = get_lib_names(path,name)
make_la_file("./las",names)

写的比较乱,代表了当时本猫的烦躁的心境吧!有什么问题可以直接回复问我!

近期Mac上编译geany软件的总结的更多相关文章

  1. 尝试在Mac上编译DNX

    自从XRE改名为DNX至今,从来没有在Mac OS X上成功编译过DNX.一直很纳闷,难道DNX的开发人员不用Mac?今天突然明白了,DNX的开发人员真的不用Mac.而且DNX用的2个持续集成服务Ap ...

  2. Mac上编译并运行Android5.0源码

    下载.配置环境.build和运行参考的都是Android Source提供的文档,包括:Initializing a Build Environment,Downloading the Source和 ...

  3. cgo在mac上编译

    用了cgo mac上编译不过的可以试试下面的方法 ../../pkg/mod/github.com/mattn/go-sqlite3@v1.:: fatal error: 'stdlib.h' fil ...

  4. MAC 上编译安装nginx-rtmp-module 流媒体服务器

    MAC 上编译安装nginx-rtmp-module 流媒体服务器 记录踩坑过程 下载nginx和nginx-rtmp-module wget http://nginx.org/download/ng ...

  5. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  6. iOS工程师Mac上的必备软件

    原文链接     前言   iOS工程师一直都是那么的高逼格,用的是Mac电脑,耍的是iPhone手机,哇咔咔~~  但是,作为一名iOS开发工程师,我们除了高逼格外,还必须是全能的.你不会点UI设计 ...

  7. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序【转】

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  8. IOS-工程师Mac上的必备软件

      前言   iOS工程师一直都是那么的高逼格,用的是Mac电脑,耍的是iPhone手机,哇咔咔~~  但是,作为一名iOS开发工程师,我们除了高逼格外,还必须是全能的.你不会点UI设计.不会点后台语 ...

  9. MAC上的爬虫软件怎么选?看完这篇就够了

    在上一篇文章:网络爬虫软件哪个好用? 中,我们介绍了目前市面上比较成熟好用的网络爬虫软件, 但是其中有些不能在MAC上使用,因此今天这篇文章我们单独介绍一下在MAC操作系统中有哪些好用的爬虫软件,给大 ...

随机推荐

  1. VS2008界面语言设置

    在卸载某个软件的时候,不知道什么原因导致vs2008的界面变成中文的了,但是菜单还是英文的,很不美观. 几经查找,最后可以在如下的地方设置界面语言 Tools -> Options 如果设置成 ...

  2. Hibernate超简单多表操作

    所谓一对多映射 在数据库中我们通常会通过添加外键的方式将表关联起来,表现一对多的关系. 而在Hibernate中,我们则要通过在一方持有多方的集合来实现,即在"一"的一端中使用元素 ...

  3. INV 调试: 如何获取库存物料事务处理调试信息

     1. 按如下方式设置系统配置文件值: 系统配置文件值 地点/用户/应用/职责层配置文件值 --汇总 FND: 启用调试日志   是 FND:调试日志层级   陈述 INV: 调试跟踪: 是 IN ...

  4. Ubuntu 13.04设置root用户登录图形界面

    先切换到root用户, sudo su root 1.先设定一个root的密码, passwd root 2.备份一下lightgdm cp -p /etc/lightdm/lightdm.conf ...

  5. Struts2进阶(一)运行原理及搭建步骤

    Struts2进阶(一)运行原理 Struts2框架 Struts2框架搭建步骤 致力于web服务,不可避免的涉及到编程实现部分功能.考虑使用到SSH框架中的Struts2.本篇文章只为深入理解Str ...

  6. 【一天一道LeetCode】#125. Valid Palindrome

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  7. 记一个逻辑bug

    1     从数据库中找出一个学生能选的毕业设计(毕设的select or not 字段表示本题目是否已经被选 此时就按照其值为n来查询) 2     用户选择某个毕设后,先更新毕设表(select ...

  8. SpringMVC返回json是设置编辑等消息头,消息头信息介绍(respone.setHeader,这个从网上获取)

    1.  SpringMVC中设置消息头,例子如下: ? 因为上面的代码没有添加该文件的编码说明 , WEB应用程序在将jsp翻译成class文件时 , 把该字符串的内容按默认的保存方式指定的编码ASC ...

  9. Touch Handling in Cocos2D 3.x(五)

    实现新英雄的放置功能 首先我们需要一个变量来保持我们当前移动英雄的引用,因此我们将添加一个私有实例变量.修改MainScene.m中的代码. 用: @implementation MainScene ...

  10. sublimeText3使用记录

    sublime确实是神器,最近学习了一下,做个记录 1.下载 http://www.sublimetext.com/3 选择对应的版本安装即可(我的是win10 64位机) 2.个人配置 2.1.默认 ...