C++ 使用cmake编译
学习如何创建 静态库、动态库、
学习如何连接现有的 静态库、动态库、
生成静态库示例:
在account_dir目录下:
Account_.h
#ifndef Account_H
#define Account_H
class Account1
{
private:
public:
Account1();
~Account1();
};
#endif
Account1.cpp
#include "Account_.h"
#include <iostream>
Account1::Account1()
{
std::cout << "构造函数Account::Account()" << std::endl;
}
Account1::~Account1()
{
std::cout << "析构函数Account::~Account()" << std::endl;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(A_001)
add_library(A_001 STATIC Account1.cpp Account_.h)
依次输入命令:
cmake -S . -B build
cmake --build build
libA_001.a 是生成好的静态文件,其他暂时无用,先删除。
链接静态库
使用刚生成的静态库,进行连接。
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(A_002)
add_executable(A_002 test_account.cpp)
target_include_directories(A_002 PUBLIC "../account_dir")
target_link_directories(A_002 PUBLIC "../account_dir/build")
target_link_libraries(A_002 PRIVATE A_001)
test_account.cpp
#include <iostream>
#include "Account_.h"
int main()
{
Account1 alice_account;
std::cout << "test Account 的main函数" << std::endl;
return 0;
}
在test_account路径下,再输一次命令:
cmake -S . -B build
cmake --build build
查看链接库的详情:
ldd ./build/A_002
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)