近期Mac上编译geany软件的总结

简介:

    以前在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)

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

相关文章
|
1月前
|
编解码 项目管理 开发工具
探寻最受欢迎的 Mac 系统开源免费软件
探寻最受欢迎的 Mac 系统开源免费软件
mac上datagrip.vmoptions文件编辑错误导致DataGrip软件打不开
mac上datagrip.vmoptions文件编辑错误导致DataGrip软件打不开
|
4月前
|
Web App开发 前端开发 数据安全/隐私保护
公认超级好用的Mac软件汇总(三)
公认超级好用的Mac软件汇总(三)
160 0
|
1月前
|
Kubernetes NoSQL Java
ChaosBlade常见问题之在mac下编译报checksum mismatch的错误如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
19 0
|
4月前
|
IDE 关系型数据库 开发工具
公认超级好用的Mac软件汇总(一)
公认超级好用的Mac软件汇总
168 0
|
6月前
|
Go 数据安全/隐私保护 iOS开发
Mac系统重装指南(不抹盘):2023版保姆级教程,轻松解决macOS问题并保留数据和软件
Mac系统重装指南(不抹盘):2023版保姆级教程,轻松解决macOS问题并保留数据和软件
165 0
|
9月前
|
域名解析 存储 Linux
Mac M1 搭建虚拟机节点集群过程及软件分享
Mac M1 搭建虚拟机节点集群过程及软件分享
234 0
|
4月前
|
小程序 IDE 前端开发
mac开发必备软件
作为一名不资深开发工程师,用对工具可以节省我们大量的时间用来摸鱼,比如我的这篇文章就是在摸鱼的时候写的,在使用mac的过程中我下载过大量的软件,最终经过时间的洗礼留下了一些比较优秀的软件推荐给大家,如果你也有宝藏软件欢迎推荐!
|
4月前
|
存储 iOS开发 Docker
公认超级好用的Mac软件汇总(二)
公认超级好用的Mac软件汇总(二)
148 1