1. 安装brewinstall 及 CMake
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
brew install cmake
2. 构建静态库及动态库
构建cmake01 文件,目录结构如下:
根目录下CMakeLists.txt
cmake_minimum_required(VERSION 3.24)
project(hello)
add_subdirectory(src bin)
src/hello.h
#pragma once
void helloFunc();
src/hello.cpp
#include "hello.h"
#include <iostream>
void helloFunc(){
std::cout << "Hello World" << std::endl;
}
src/CMakeLists.txt
set(SRC hello.cpp)
# 静态库构建
add_library(hello STATIC ${SRC})
install(FILES hello.h DESTINATION include)
install(TARGETS hello LIBRARY DESTINATION lib)
# 动态库构建
# add_library(hello SHARED ${SRC})
# install(FILES hello.h DESTINATION include)
# install(TARGETS hello ARCHIVE DESTINATION lib)
执行过程:
cd build
cmake ..
make
sudo make install
hello.h 默认安装到的路径:
/usr/local/include/hello.h
静态库和动态库默认安装到的路径:
/usr/local/lib/libhello.a
3. 使用所构建的库
cmake02 目录结构
根目录CMakeLists.txt
cmake_minimum_required(VERSION 3.24)
project(hello2)
add_subdirectory(src bin)
src/CMakeLists.txt
SET(SRC_LIST main.cpp)
include_directories(/usr/local/include)
add_executable(hello2 ${SRC_LIST})
target_link_libraries(hello2 /usr/local/lib/libhello.a)
src/main.cpp
#include <hello.h>
int main() {
helloFunc();
}
执行过程
cd build
cmake ..
make
cd bin
./hello2