标签为 "build" 的存档

go lang交叉编译,在linux下编译windows上可用的exe可执行文件

最近在看golang,看了《GO语言编程》,没看一段都会照葫芦画瓢搞个demo来玩玩。
在搞交叉编辑的时候,遇到了麻烦,按书上搞的,buildpkg 这个脚本里,需要在$GOROOT/src下执行go tool dist install -v pkg/runtime ,可是src下根本没有这个 pkg/runtime的目录啊,总是报错,怎么也编译不出来。

自己就不管那个脚本了,自己看错误提示琢磨。
自己直接 go build exe文件的时候,报错 go build runtime: windows/386 must be bootstrapped using make.bash
然后估摸着,需要先修改GOOS和GOARCH进行make.bash,试了下,果真可以。

所以,交叉编译,做一个windows下64位电脑可用的exe文件,这样搞:

cd $GOROOT/src
GOOS=windows GOARCH=amd64 ./make.bash #如果是32位,就GOARCH=386
cd word #回到自己想输出可执行文件的位置
GOOS=windows GOARCH=amd64 go build -o sorter.exe sorter #go build 依赖 $GOPATH,这个就不多说了。

效果图:

go-build-for-linux

linux下运行效果图

go-build-for-windows

windows下运行效果图

如何在不重新make install PHP的情况下编译出PHP扩展.so文件

生成一个PHP扩展.so文件,一般就是这两种方法,第一种是在php源码内configure –[with|enable]-extension_name,然后make && make install,新扩展就会生成并保存在PHP的环境中了。
不过多半会有这种情况,我们跟别人共用一台开发机,开发机已经安装了标准的php开发环境,如果我们在用这种重新编译PHP的情况,如果我们有调试php源码,或者调试扩展,很有可能会损坏原有的标准环境,所以我们就需要另一种方法,只生成一个.so文件,然后把so手动放到标准环境下,就可以不影响大局了。
这种方式呢,也很简单,跟第一种方法一样,三步搞定。

一、phpize
进入你开发php扩展的扩展根目录,比如我想做的扩展是 fkhelloworld,目录在这里 /home/s/www/fukun/clang/php-5.2.6/ext/fkhelloworld.
在这里执行phpize,如果提示找不到此命令,就找到你php的bin目录,执行全路径的命令,比如我的phpize在这里:/home/s/apps/php-5.2.6/bin/phpize

If you look in the current directory at this point, you’ll notice a lot more files than you had there a moment ago. The phpize program combined the information in your extension’s config.m4 file with data collected from your PHP build and laid out all the pieces necessary to make a compile happen. This means that you don’t have to struggle with makefiles and locating the PHP headers you’ll be compiling against. PHP has already done that job for you.

phpize会结合你的config.m4文件中描述的信息以及你的php构建相关数据,制定合并所需的部分数据,这意味着你不必再在意makefile文件和定位要编译的php文件头,PHP已经把这些都做好了。

Read more…

No module named zope.interface -windows cygwin -install zope

今天安装了Twisted,使用的时候了报ImportError(ImportError: No module named zope.interface):

from zope.interface import implements

细心的话,在安装Twisted的时候应该能发现,对安装是有环境需求的:

This method is only necessary if you are trying to install Twisted from e.g. the Subversion repository, and you don’t want to acquire all the tools necessary to do the Official build.

Install either Python 2.4 or Python 2.5
Install ZopeInterface 3.3.0 or later for Python

需要安装ZopeInterface。
但是如何安装这个扩展呢,在这里可以找到 zope.interface,我选择的是安装zope.interface 3.8.0,然后点击Downloads我们可以看到一堆egg的文件,以及一个Source的文件,我们选择source的文件下载,放到cygwin环境下的某个目录里下,比如说/usr/src/.
然后,使用cygwin,依次输入以下命令,即可安装完成。

cd /usr/src
cd zope.interface.3.8
python setup.py install build --compiler=mingw32
python setup.py install