新建一个文件夹,然后创建如下的目录:
.
├── build
├── CMakeLists.txt
└── lib
├── CMakeLists.txt
├── hello.cpp
└── hello.h
最外层的CMakeLists.txt内容:
cmake_minimum_required(VERSION 3.14)
PROJECT(HELLO)
ADD_SUBDIRECTORY(lib)
lib内部的CMakeLists.txt内容:
SET(LIBHELLO_SRC hello.cpp)
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})
hello.h的内容:
// 头文件只是为了声明调用接口
#ifndef HELLO_H
#define HELLO_H
#include <iostream>
void HelloFunc();
#endif
hello.cpp的内容:
#include "hello.h"
void HelloFunc() {
std::cout << "Hello world !\n";
}
在build目录依次执行命令:cmake ..
和make
,会在build目录下生成lib文件夹,其内部包含libhello.so动态链接库。
如果想要指定动态链接库的生成位置,那么可以在lib的CMakeLists.txt文件中添加:
SET(LIBRARY_OUTPUT_PATH <path>)
如果进行安装操作,可以执行如下操作:
INSTALL(TARGETS hello
LIBRARY DESTINATION lib
)