因爲工作需要, 要在arm 開發板上移植 OpenIGTLink 協議,下面是我的一些環境配置:
host:
fedora 9: Linux localhost.localdomain 2.6.25-14.fc9.i686
arm-linux-gcc 4.4.3
target:
芯片: S3C2440
linux 內核 2.6.32
移植步驟:
1, 下載OpenIGTLink 源碼:
在 http://www.na-mic.org/Wiki/index.php/OpenIGTLink/Library/Build 上下載linux 對應源碼
2, 配置 cmake,
cmake 的配置腳本爲 CMakeLists.txt, 執行cmake , cmake 工具會自動在指定目錄下查找CMakeLists.txt 文件, 就像 執行 make 命令, make 就會自動搜索並執行當前目錄下的makefile 文件一樣.
配置 cmake 就是 修改CMakeLists.txt 文件, 本次移植 就是將 x86 平臺的OpenIGTLink 移植到arm 平臺,所以 首先當然是制定編譯器了:
在 PROJECT( OpenIGTLink ) 前 加上如下語句:
set(CMAKE_C_COMPILER "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc")
set(CMAKE_CXX_COMPILER "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-g++")
set(CMAKE_AR "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-ar")
set(CMAKE_LD "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-ld")
set(CMAKE_LINKER "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-ld")
set(CMAKE_NM "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-nm")
set(CMAKE_STRIP "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-strip")
set(CMAKE_RANLIB "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-ranlib")
set(CMAKE_OBJCOPY "/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-objcopy")
LINK_DIRECTORIES("/opt/FriendlyARM/toolschain/4.4.3/lib")
執行cmake 後, make 發錯有錯, 因爲, cmake的 有寫選項要在 PROJECT( OpenIGTLink ) 之後指定纔有效,索性 我就將上面一段話在 PROJECT( OpenIGTLink ) 後面又paste 一下;
然後 執行 cmake , 再make , 編譯ok!
呵呵, 相當簡單吧!