account_dir/account.h#include iostream using namespace std; class account { public: account(); ~account(); };account_dir/account.cpp#include account.h account::account() { coutaccount构造endl; } account::~account() { coutaccount析沟endl; }account_dir/CMakeLists.txt# 最低版本要求 cmake_minimum_required(VERSION 3.5) # 项目信息 project(Account) # 添加动态库Linux下会生成libAccount.so add_library(account SHARED account.cpp account.h)test_account/main.cpp#include account.h #include iostream using namespace std; int main() { account a; coutmain函数调用endl; return 0; }test_account/CMakeLists.txt# test_account/CMakeLists.txt # 最低版本要求 cmake_minimum_required(VERSION 3.5) # 项目名称 project(test_account) # 添加执行文件 add_executable(test_account main.cpp) # 添加头文件目录如果不添加找不到头文件 target_include_directories(test_account PUBLIC ../account_dir) # 添加库文件目录如果不添加找不到库文件 target_link_directories(test_account PUBLIC ../account_dir/build) # 添加目标链接库 target_link_libraries(test_account PRIVATE account)
CMake四、动态链接库多CMakeLists.txt版
account_dir/account.h#include iostream using namespace std; class account { public: account(); ~account(); };account_dir/account.cpp#include account.h account::account() { coutaccount构造endl; } account::~account() { coutaccount析沟endl; }account_dir/CMakeLists.txt# 最低版本要求 cmake_minimum_required(VERSION 3.5) # 项目信息 project(Account) # 添加动态库Linux下会生成libAccount.so add_library(account SHARED account.cpp account.h)test_account/main.cpp#include account.h #include iostream using namespace std; int main() { account a; coutmain函数调用endl; return 0; }test_account/CMakeLists.txt# test_account/CMakeLists.txt # 最低版本要求 cmake_minimum_required(VERSION 3.5) # 项目名称 project(test_account) # 添加执行文件 add_executable(test_account main.cpp) # 添加头文件目录如果不添加找不到头文件 target_include_directories(test_account PUBLIC ../account_dir) # 添加库文件目录如果不添加找不到库文件 target_link_directories(test_account PUBLIC ../account_dir/build) # 添加目标链接库 target_link_libraries(test_account PRIVATE account)