在涉及到跨平台的开发,大家都会提及到cmake,因为用它可以更方便的生成makefile文件,同时也可以生成相应平台版本的工程文件。
cmake的IDE工具,我通过查询资料对比,发现QtCreator比较方便易用,推荐大家使用。
在windows平台和linux平台都需要安装camke工具;
windows下载地址:Index of /files (cmake.org)https://cmake.org/files/ linux 下载命令:
redhat 系列 yum install cmake
ubuntu系列 apt-get install cmake
cmake的使用方法:
windows:可以通过它的图形化配置界面,生成指定的工程文件,可以通过vs之类的工具打开编译。
linux:先编写CMakeLists.txt文件,然后放在源码文件中,再创建build文件,进入build目录下,敲命令 cmake ..;此时会在build当前目录下生成makefile文件,再执行make命令,就可以编译生成目标文件了。
最重要的就是CMakeLists.txt文件的编写规则了,先初步总结一个规范,后期再进行延申,一起学习。
CMakeLists脚本语言是不区分大小写的,根据用户习惯来写,刚开始我用系统生成的都是小写,后来发现其中一些宏定义还是要求大写的,所以我还是遵循大写的书写规范。
cmake_minimum_required(VERSION 3.2) #先定义cmake的最低版本
project(skfinterface) #定义工程名称
aux_source_directory(. src_list) #添加当前路径,作为源码路径
aux_source_directory(./SMS src_list_sub) #添加当前路径下的子目录,也作为源码路径
add_library(skfinterface SHARED ${src_list} ${src_list_sub})#生成目标文件为库文件,如果不加SHARED参数,默认生成静态库,否则生成动态库。 依次是:库名称、编译宏、源码路径(但凡涉及到的路径,都可以写进去)
add_executable(etdemo ${src_list})#生成目标文件为可执行程序,后面跟源码路径
target_link_libraries(etdemo dl skfinterface)#生成的目标,如果需要依赖库文件,则后面跟库名称