因为工作需要, 要在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!
呵呵, 相当简单吧!