前段时间移植了一个库,把cmake编译相关的步骤记录一下:
0.cmake_minimum_required( VERSION ***)
VERSION 需要大写。
查看本机cmake 版本命令:$cmake --version
1.aux_source_directory(. ***)
作用:找寻source code;
哪里找:.,即当前目录,此处可以改成想要的目录,
找到的src 列表存到哪:放到***表示的一个变量里,后面会用。
如果后面再跟aux_source_directory ,那列表会继续追加。
2.add_library(aaa SHARED
${***})
作用:生成名字为libaaa的库,‘lib’ 是编译时自动加的;
SHARED表示共享库,这里还可指定静态库(STATIC);
***即为上面1中找到的src 文件。
如果要编汇编代码,这里可以再补充汇编的路径和.s,并补充
ENABLE_LANGUAGE(C ASM)。
2.1 add_executable,生成可执行文件。
3.target_compile_options(aaa PRIVATE/…)
为target ‘aaa’添加编译选项,aaa为2中指定的库名。
4.add_definitions //待补充
5.target_include_directories
添加头文件。
6.install
安装。
7.中间可能会用到几个变量:
PROJECT_SOURCE_DIR、CMAKE_CURRENT_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR
之后,可以到生成的路径下,看到libaaa.so,然后nm -D、objdump -tT命令可以查看so里的符号。