轉載時請註明出處和作者聯繫方式
文章出處:http://blog.csdn.net/jack0106
作者聯繫方式:馮牮
[email protected]
一 配置編譯tracker-0.9.8
我使用的版本是tracker-0.9.8,我的配置腳本是(安裝在了/usr目錄):
./configure --prefix=/usr --enable-taglib --enable-gcov --enable-unit-tests --enable-gstreamer-tagreadbin --enable-gdkpixbuf --enable-video-extractor=gstreamer --enable-gstreamer-helix --enable-gnome-keyring --enable-network-manager --enable-miner-evolution --enable-tracker-status-icon --enable-tracker-explorer --enable-tracker-search-bar --enable-tracker-search-tool --enable-tracker-preferences --enable-poppler --enable-libexif --enable-libiptcdata --enable-libgsf --enable-libgif --enable-libjpeg --enable-libtiff --enable-libvorbis --enable-libflac --enable-exempi --enable-playlist --enable-nautilus-extension --enable-maemo
此配置腳本的目的是讓tracker儘量支持更多的特性,請根據各自的配置結果,安裝依賴文件,然後重新配置,直到配置通過爲止。
這樣得到的配置結果如下:
Build Configuration:
Prefix: /usr
Source code location: .
Compiler: gcc
Compiler Warnings: no
Win32: no
Enable gtk doc (for documentation): no
Enable functional tests: yes
Enable unit tests: yes
Support for ioprio: yes
Support for HAL: no
Support for UPower: no
Support for file monitoring: libinotify
Support for accent stripping (unac): no
Support for Cyrillic languages (enca): no
Support for network status detection: yes
Unicode support library: glib
Applications:
Build with SQLite FTS support: yes
Build tracker-search-tool: yes
Build tracker-preferences: yes
Build tracker-status-icon: yes
Build tracker-explorer: yes
Build tracker-search-bar: yes
Metadata Extractors:
Support libstreamanalyzer: no (disabled)
Support PNG: yes
Support PDF: yes
Support GIF: yes (xmp: yes)
Support JPEG: yes (xmp: yes, exif: yes, iptc: yes)
Support TIFF: yes (xmp: yes, exif: yes, iptc: yes)
Support Vorbis (ogg/etc): yes
Support Flac: yes
Support MS & Open Office: yes
Support XML / HTML: yes
Support embedded / sidecar XMP: yes
Support video formats: yes (GStreamer) (tagreadbin: yes)
Support helix formats (RPM/RM/etc): yes
Support MP3 album art: yes (GdkPixbuf
)
Support playlists (w/ Totem): yes
Data Miners:
RSS: no
Evolution: yes (/usr/lib/evolution/2.28/plugins)
KMail: yes
Flickr: no
Plugins:
Nautilus: (tagging widget) yes
Writeback:
Audio files using Taglib: no
XMP: yes
Frameworks:
Support Maemo yes
Warning:
You must make sure SQLite is compiled with --enable-threadsafe
二 libqttracker的配置編譯
前提:我的PC上,tracker安裝在了/usr目錄,Qt-4.7安裝在了/usr/local/Trolltech/Qt-4.7.0目錄(ubuntu10.04,系統自帶的qt,是4.6版本的)
1. 從git://gitorious.org/maemo-af/libqttracker.git下載最新的qttracker代碼。
2. 進入目錄libqttracker,打開文件projects.pro,搜索其中的SUBDIRS字段,修改成如下形式:
#SUBDIRS = src tests
SUBDIRS = src
3. 我的Qt-4.7被安裝在了/usr/local/Trolltech/Qt-4.7.0目錄,我希望qttracker使用qt-4.7庫,並且安裝到/usr/local/Trolltech/Qt-Tracker目錄,所以,執行如下命令:
QTDIR=/usr/local/Trolltech/Qt-4.7.0/ /usr/local/Trolltech/Qt-4.7.0/bin/qmake PREFIX=/usr/local/Trolltech/Qt-Tracker
4. 執行make。
make執行完後,進入lib目錄,執行ldd libqttracker.so,如果結果類似於如下:
fengjian@fengjian-ubuntu:~/my-work/base-lib/tracker/libqttracker/lib$ ldd libqttracker.so
linux-gate.so.1 > (0x00729000)
libuuid.so.1 > /lib/libuuid.so.1 (0x0082d000)
libQtDBus.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtDBus.so.4 (0x00ea6000)
libQtXml.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtXml.so.4 (0x00110000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtCore.so.4 (0x0027d000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x0021d000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00524000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00239000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00155000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00832000)
/lib/ld-linux.so.2 (0x00260000)
libz.so.1 => /lib/libz.so.1 (0x00e1a000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00fe4000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00174000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0x0017a000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x0061a000)
libpcre.so.3 => /lib/libpcre.so.3 (0x00183000)
libqttracker.so鏈接的qt庫的路徑是/usr/local/Trolltech/Qt-4.7.0/lib/libQtDBus.so.4,如果是這樣的情況,則說明正確鏈接到qt-4.7版本了。
5. 執行make doc,可以生成文檔。
6. 執行sudo make install。
執行此命令,會遇到這樣的錯誤描述:make: [install_install_doc] 錯誤 1 (忽略)
可以忽略這個,然後檢查一下/usr/local/Trolltech/Qt-Tracker目錄,只要有qttracker的頭文件和庫就行了。
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
7. 在代碼中使用libqttracker庫。使用libqttracker源碼路徑裏面的example目錄來進行說明。
7.1
執行ls,可以看到example裏面有3個子文件夾:
fengjian@fengjian-ubuntu :~/my-work/base-lib/tracker/code-example/examples$ ls
contacts email examples.pro queries
7.2
進入每個子目錄,分別編輯每個子目錄裏面的工程文件,搜索其中的LIBS字段,修改成如下形式:
#LIBS = -lqttracker
INCLUDEPATH + /usr/local/Trolltech/Qt-Tracker/include
LIBS + -L/usr/local/Trolltech/Qt-Tracker/lib -lqttracker
QMAKE_LFLAGS += -Wl,-rpath,/usr/local/Trolltech/Qt-Tracker/lib
7.3
在example目錄裏執行QTDIR=/usr/local/Trolltech/Qt-4.7.0/ /usr/local/Trolltech/Qt-4.7.0/bin/qmake
然後執行make。
這樣的話,在每個子目錄裏面,就可以看到編譯出來的對應的可執行文件了。