跨平台之Cmake

CMake 即cross make,即交叉编译工具。主要依据CMakeList.txt这个文件。

每一个工程都应该包括一个CMakeList.txt,名字都不能错。

怎么编写CMakeList.txt,其实实现目标跟qt的pro文件是一样的。但Cmake可能使用的更广泛,可以使用所有编译器。

需要自己下载一个cmake工具。是一个类似于终端的工具。下面的配置好后执行:

cmake  path_to_source

当然也可以指定编译器:

cmake  -G ”visio studio 2013“  path_to_source 

1、cmake 最小版本,cmake小于这个版本可能就编译不了了

cmake_minimum_required(VERSION 2.8.0)

2、 设置工程名称

set(PROJECT  Usb)  //工程名为Usb

set的功能其实很简单,就是把后面的添加到前面的变量集合里面。后面还会用到。

3、路径设置,下面这几行可以让路径成为相对路径,这样把代码随便拷都可以了

#工程文件中使用相对路径
SET(CMAKE_SUPPRESS_REGENERATION 1)
SET(CMAKE_USE_RELATIVE_PATHS ON)
#定义工程的顶级路径
SET(PROJDIR ${CMAKE_CURRENT_SOURCE_DIR})


#定义源文件目录
SET(SRCDIR ${PROJDIR})

set大写跟小写一样,其他的也是。
#Jenkins integration section end
4、必须增加的

project (${PROJECT})  //这里的 ${PROJECT} 等效于 Usb,因为第2条set了。


5、设置编译器

下面是设置Android的编译器,其中,COMPILIER_PATH 是在前面自己定义的ndk路径。比如 set(COMPILIER_PATH "/home/ndk")

SET(CMAKE_CXX_COMPILER "${COMPILER_PATH}/bin/arm-linux-androideabi-g++")
SET(CMAKE_C_COMPILER "${COMPILER_PATH}/bin/arm-linux-androideabi-gcc")


6、源文件

set(USB_SOURCES   

maic.c

abc.cpp

)

7、 头文件

include_directories(./

./include

)

8、宏定义

比较增加ANDROID 的宏定义

add_definitions(-DANDROID)


9、子工程

add_subdirectory(./usb)//usb这个目录里应该也有CMakeList.txt

10、依赖库

target_link_libraries(工程名  库名) //库名可以多个,不需要加引号


11、编译目标

add_executable(工程名 $(USB_SOURCE)) 

USB_SOURCE 就是前面的源文件集合

第10条一般放到后面去。是先编译成执行文件,再链接。

如果编译成库

add_library(工程名 $(USB_SOURCE)

动态库

add_library(工程名 SHARED $(USB_SOURCE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值