centos6.2源码安装couchbase

首先,couchbase依赖的组件很多,一般的系统不会自动安装,

并且许多依赖包都是官方repo中没有的,需要从第三方rpm下载站点下载安装。

这些情况导致couchbase全编译比较麻烦,下面需要一步步仔细操作,

预装包:

pyrex

repo-1.15版本

snappy 数据压缩/解压缩库

libtoolize

libcurl, libcurl-devel

erlang, 版本r14+

v8, v8-devel, 版本为v8 3.8+

icu, icu-devel

python-2.x

其中, erlang和snappy需要手动安装,无相应的rpm包。

下载编译工作源代码:

cd /serv/sources/

git clone https://github.com/membase/manifest.git

mkdir couchbase-git

cd couchbase-git

初步使用Android NDK的感受

Android NDK是Android平台提供的C/C++开发接口。

NDK整套工具链完全由google提供,升级支持。

由于Android的底层是基于linux的,内核及之上,java虚拟机以下,

而NDK则正针对是的这一部分,所以,与正常的linux gcc编译工具链差不多,

不同的地方在于,

1. 这是一个交叉编译工具链,链接目标为ARM系

2. 这个工具链自定义了一些android平台相关的宏

3. 有自己的Makefile规则及扩展

对于一般的命令行项目,移植还比较容易,当然这不包括音频、视频处理。

像linux常用的音频软件,alsa,pulseaudio目前都没有成熟的移植,使用了这些的软件包移植时,需要把这部分扩展到android的音频、视频框架。

直接使用NDK做GUI的功能非常弱,非常不成熟,稍微好点的有个qt移植lighthouse,使用起来比较麻烦,并且做出的界面风格与android普通应用风格区别很大。

使用NDK的好处是可以移植大量的linux C/C++开源开发库。

最近移植了几个开发库,遇到的问题还不太多,一般在asm这块,或者一些不常见的函数实现问题。

Unix/Linux一个链接参数

在看代码的时候,发现一些代码的链接使用这个链接参数,-Wl,-z,noexecstack

搜索查找,发现这是一个比较接近“hack"类的功能,与-shared参数差不多,链接一个不可执行的ELF,相当于动态链接库。

还有一个工具叫execstack,可以对现有的ELF文件操作,添加或者去掉”执行“属性。

这些工具现在默认在Unix/Linux都不带了,看到一些讨论,去掉的原因就是太接近"hack"功能了,并且有更简洁直接的替代方法,像在链接是选择使用-shared或者不使用。

如果没有这个工具,如何对已有的ELF文件操作。

Category: 

Shell中的.bashrc和.bash_profile的区别

一向常用的用户定义变量会放置在这个位置,两个位置都能生效,不过也有些区别,

.bashrc是在每个bash实例启动时都会执行的配置变量

.bash_profile相当于对bash全局的设置,在第一个bash实例启动时即已经初始化

不知道这么理解的对不对,试试看。

Category: 

今天试了一把更强大的ssh X11forwarding功能

这次使用主要解决了两个问题,
一个是在centos 服务器上的配置。
另一个是在启动的程序中使用中文输入法的功能。
对forwading模式下的X渲染风格机制了解了一点。

1. 远程服务器为centos 6.2 x86_64
在/etc/sshd_config中开启下面三个sshd服务端配置参数:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

重启动sshd, /etc/init.d/sshd restart

2.确认安装了必须的包,
xterm,测试包,能了之后,执行这个程序可在本地显示。
xorg-x11-xauth,这个必须安装,否则无法实现基于ssh的x11forwarding功能。
需要安装两个字体包,不然可能有些X程序无法运行,像wqy-zenhei-fonts dejavu-lgc-sans-mono-fonts。

3。重新登陆ssh,测试xterm是否正常运行

ssh -C -XY younam@youhost

Category: 

Go语言入门Hello go!!!

Google前不久发布了Go语言正式版本go1,号称web时代的C语言。

这了工作需要,也了解了一下这个语言的基本原理及应用。

今天从最入门级的Hello go!!!开始,虽然go语言是看了眼前一亮的语言,在发文不免也有点落了俗套了。

上代码:

$ cat hello.go
package main

import "fmt"

func main() {
fmt.Println("Hello go!!!");
}

假设已经全局安装了go编译系统,go命令在PATH中
使用go build 即可编译出可执行程序,程序名为hello
执行./hello看到结果。

代码解释:
package main这是必须的,每一个go语言源文件都必须作为某个包的一个源文件存在

import "fmt" 也许不是必须的,如果不引入任何包,go语言能做什么?import与 java中的import指令功能相同,引入一个包

func main () 这是作为入口的源文件必须的函数,对应C的main函数

Category: 

嵌入式数据库hamsterdb的android编译工程文件

hamsterdb是一个采用C开发,非常快,轻量级的嵌入式数据库引擎。

hamsterdb 包括的B +树变长密钥和记录。它支持内存中的数据库和字节独立的文件,数据库,游标,多个数据库在一个文件中, “记录”数据库,重复键。 hamsterdb是非常快速和高度可配置的。汇编和Unix平台上运行, Linux ,微软Windows ,和Windows CE 。

嵌入式数据库 hamsterdb 2.x 正式版发布,该版本包含一个完全重新实现的事务处理,可支持无限制的并发事务处理数,集成 Java 和 .NET 的 客户端访问 API。

由于在android项目中要使用,编写了一上使用android NDK编译hamsterdb的工程文件,还比较通用,发布出来,供开发者参考:
项目中使用的是最新版本的hamsterdb-2.0.1

在编译过程中,遇到一个basename函数找不到的问题,需要修改两个文件,添加一行
#include

需要修改的文件是src/log.cc和src/journal.cc

工程文件有两个,Application.mk和Android.mk,放在android项目的jni目录,使用android-build命令编译。

Category: 

android 开发文档资料

在线文档:
官方网站的《android 开发指南》
官方网站的

书籍:
Hello Android 3rd
Android-2高级编程
Beginning.Android.4.Application.Development

Category: 

android Linux 开发环境

这是一个开发环境搭建及环境维护文档。

我使用的是arch linux,一般都保持比较新的状态。

桌面环境KDE 4。

相关包:
sudo pacman -S swt lib32-sdl lib32-libstdc++5 lib32-openal libmtp
AUR包:
android-sdk
android-ndk
android-sdk-platform-tools
android-apktool
android-udev

安装完android-udev后,需要把你开发用的用户添加到adbusers组中,这个组是安装该包时添加的。

gpasswd -a USERNAME adbusers

android platforms版本及下载:
http://dl-ssl.google.com/android/repository/android-15_r03.zip

Category: 

HTC G18功能使用

自带屏幕抓图功能,电源键+HOME键

插入耳机,屏幕左上角显示beats音效图标。

官方推送升级4.0后每次重起出现"优化应用",如何去掉。

Category: 

Pages

Subscribe to www.qtchina.net RSS