交叉编译环境下的CmakeList(demo)

本文介绍了在Ubuntu系统下以及交叉编译环境中,如何编写和配置CMakeLists文件,包括第三方库thidrparty.a的构建和可执行文件的构建,特别指出在交叉编译时需关注opencv库的动态链接路径设置。
摘要由CSDN通过智能技术生成

July 26, 2016
作者:dengshuai_super
出处:http://blog.csdn.net/dengshuai_super/article/details/52038970
声明:转载请注明作者及出处。


CMake在ubuntu系统下默认使用系统的gcc、g++编译器,编译arm下的程序要使用arm-linux-gcc,需要对CMake进行设置(通过在CMakeLists.txt中指定交叉编译器的方法)。
在CMakeLists.txt一开始加入相关设置:
#告知当前使用的是交叉编译方式,必须配置
SET(CMAKE_SYSTEM_NAME Linux)

#指定C交叉编译器,必须配置
#或交叉编译器使用绝对地址
SET(CMAKE_C_COMPILER "arm-linux-gcc")

#指定C++交叉编译器
SET(CMAKE_CXX_COMPILER "arm-linux-g++")

#不一定需要设置
#指定交叉编译环境安装目录...
SET(CMAKE_FIND_ROOT_PATH "...")
#从来不在指定目录下查找工具程序
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
#只在指定目录下查找库文件
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
#只在指定目录下查找头文件
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Ubuntu下的CMakeList文件:

1.build CMakeList of the thidrparty.a

## build CMakeList of the thidrparty.a
cmake_minimum_required(VERSION 3.1.0)
project(thirdparty)

#TODO :<
# c++11 required
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#TODO/>

# OpenVC3 required
find_package(OpenCV 3.1.0 REQUIRED)

# where to find header files
include_directories(${OpenCV_INCLUDE_DIRS})

# sources to be compiled
set(SOURCE_FILES
        xmlParser/xmlParser.cpp
        textDetect/erfilter.cpp
        LBP/helper.cpp
        LBP/lbp.cpp
        mser/mser2.cpp
        )

# pack objects to static library
add_library(thirdparty STATIC ${SOURCE_FILES})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值