本文给出一个例子,说明如何使用cmake编译动态链接库。
项目目录:
.
├── build
├── CMakeLists.txt
└── src
├── myadd.c
└── myadd.h
其中CMakeLists.txt内容如下:
cmake_minimum_required(VERSION 3.27.0)
project(so_test)
add_library(myadd SHARED ./src/myadd.c)
myadd.c中的内容:
#include <stdio.h>
int myadd(int a, int b)
{
printf("myadd...\n");
return a + b;
}
在build下执行:
cmake ..
make
之后会在build下生成libmyadd.so,使用下面的命令查看so中的动态符号:
$ nm -D libmyadd.so
w __cxa_finalize@GLIBC_2.2.5
w __gmon_start__
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
0000000000001119 T myadd
U puts@GLIBC_2.2.5