使用cmake编译一个自定义的hello动态库,在main.c中调用输出打印“china”。
本例中使用了3个CMakeList.txt,与src和libhello同级目录的CMakeList.txt的内容是:
第一行规定cmake的最低版本要求
第二行指定项目名称HELLO
第三行添加子目录src
第四行添加子目录libhello
src目录下有main.c和CMakeList.txt,该CMakeList的内容是:
第一行包含目录libhello
第二行定义源文件
第三行定义二进制文件的生成目录
第四行定义了一个名为hello的可执行文件,相关的源文件是APP_SRC中定义的源文件或者源文件列表。
第五行为最终可执行文件添加链接库
libhello目录下有CMakeList、hello.c和hello.h,其中CMakeList.txt的内容是:
第一行设置源文件变量
第二行(非#注释的行)共享动态库相关的源文件
第三行定义动态库生成的目录
第四行设置目标属性,即设置最终二进制文件名称
创建build目录,在build目录中,执行cmake ..后,在src和libhello目录中生成各自的Makefile,分别执行make命令,在lib目录下生成libhello.so,在bin目录中生成最终二进制文件hello。
图1 整体目录结构和src目录代码
图2 libhello目录代码
| 留言与评论(共有 0 条评论) “” |