1. 程式人生 > >avro-c的編譯安裝和使用

avro-c的編譯安裝和使用

avro的簡介:看百度吧!

avro下載:http://www.apache.org/dyn/closer.cgi/avro/          (這裡有好多的可以下載的網址,一般第一個最好,後面的都是備份和第一個一樣。)

avro-c的api簡介官網:http://avro.apache.org/docs/current/api/c/                     (官網上面也沒有把全部的api說明白。)


我要用的是c版本的。

下載下來解壓之後


其中的build檔案是我自己建立的這個是用來編譯程式,編譯的時候在build裡執行,可以將產生的許多東西全放在這裡面。

1、閱讀INSTALL檔案裡面有詳細的編譯安裝過程,首先要下載兩個不知名的東西,我只下載了一個因為這兩個東西是可選的

第二個包我沒有安裝,好像沒什麼影響。

2、    $ mkdir build
    $ cd build
    $ cmake .. \
        -DCMAKE_INSTALL_PREFIX=$PREFIX \
        -DCMAKE_BUILD_TYPE=RelWithDebInfo
    $ make
    $ make test
    $ make install

這是INSTALL檔案中給出的安裝方式,第三步cmake的時候容易出現問題。

1)CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

出現這個問題的原因是缺少了g++編譯工具執行命令:

yum install gcc-c++             來安裝。

2)

CMake Error at /usr/share/cmake-2.6/Modules/FindKDE4.cmake:84 (MESSAGE):                 
ERROR: cmake/modules/FindKDE4Internal.cmake not found in                               
/home/mm/.kde/share/apps;/usr/share/kde4/apps[/code]

解決方法:

yum list kdelib

kdelibs.i686                            6:4.3.4-20.el6_4.1               updates
kdelibs.x86_64                          6:4.3.4-20.el6_4.1               updates
kdelibs-apidocs.noarch                  6:4.3.4-20.el6_4.1               updates
kdelibs-common.x86_64                   6:4.3.4-20.el6_4.1               updates
kdelibs-devel.i686                      6:4.3.4-20.el6_4.1               updates
kdelibs-devel.x86_64                    6:4.3.4-20.el6_4.1               updates
kdelibs-experimental.i686               4.3.4-3.el6                      base   
kdelibs-experimental.x86_64             4.3.4-3.el6                      base   
kdelibs-experimental-devel.i686         4.3.4-3.el6                      base   
kdelibs-experimental-devel.x86_64       4.3.4-3.el6                      base   
kdelibs3.i686                           3.5.10-25.el6                    base   
kdelibs3.x86_64                         3.5.10-25.el6                    base   
kdelibs3-apidocs.noarch                 3.5.10-25.el6                    base   
kdelibs3-devel.i686                     3.5.10-25.el6                    base   
kdelibs3-devel.x86_64                   3.5.10-25.el6                    base   

這是yum源中所有的可用安裝,但是隻需要使用最上面的6個就夠了。(其實只需要3個,就是64位的3個或者32位的3個)

3、這些問題解決之後就是後面的make和make test 和make install

在make test的時候如果出現錯誤卻不知道怎麼解決的時候可以進makefile把出錯的那幾句註釋掉,然後只留下能make的就行了。

4、安裝完了這個庫之後就能夠使用了。裡面本身就有許多測試程式可以學習和使用。

avro庫中還提供了4中檔案的壓縮方式,sanppy、default、lzma和null

Snappy 是一個 C++ 的用來壓縮和解壓縮的開發包,其目標不是最大限度壓縮,而且不相容其他壓縮格式。Snappy 旨在提供高速壓縮速度和合理的壓縮率。Snappy 比 zlib 更快,但檔案相對要大 20% 到 100%。在 64位模式的 Core i7 處理器上,可達每秒 250~500兆的壓縮速度

按照步驟安裝完snappy之後重新cmake   avro庫但是依然可能無法編譯成功,因為前面有一個zlib也沒有找到,可以用yum install zlib.x86_64安裝這個庫(32位對應的是zlib.i686)

這樣再重新cmake 就成功了!