0
点赞
收藏
分享

微信扫一扫

cmake构建c++工程动态静态库以及调用示例


文章目录

  • ​​1. 构建动态静态库​​
  • ​​2. 调用动态静态库​​
  • ​​3. 源码​​

1. 构建动态静态库

  • 目录展示
    cmake构建c++工程动态静态库以及调用示例_静态库
  • cmakelists.txt
cmake_minimum_required (VERSION 2.6)
project(hello)

#//生成动态库(SHARED) 静态库(static)
add_library(hello SHARED ${PROJECT_SOURCE_DIR}/libhello/hello.cpp)
add_library(hello_static STATIC ${PROJECT_SOURCE_DIR}/libhello/hello.cpp)
SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello")
  • hello.cpp
#include<stdio.h>
#include"hello.h"

void hello()
{
printf("hello world!\n");
}
  • hello.h
#ifndef HELLO_H
#define HELLO_H
void hello();
#endif
  • cmake
    cmake构建c++工程动态静态库以及调用示例_c语言_02
  • vs2017生成解决方案
    cmake构建c++工程动态静态库以及调用示例_#include_03
  • 结果
    cmake构建c++工程动态静态库以及调用示例_visual studio_04

2. 调用动态静态库

  • 目录文件
    cmake构建c++工程动态静态库以及调用示例_c语言_05
  • 拷贝动态静态库到指定文件lib,拷贝头文件到根目录
  • CmakeLists.txt
cmake_minimum_required (VERSION 2.6)
project(usehellolib)

# 需包含的库文件
link_directories(
D:/2022/3/medicalSeg/HelloDll/use_dll/lib
)
#//生成可执行文件
add_executable(usehellolib usehellolib.cpp)

#//链接库到可执行文件
target_link_libraries(usehellolib hello)
  • usehellolib.cpp
# include <iostream>
#include "hello.h"
int main()
{
hello();
system("PAUSE");
return 0;
}
  • cmake构建
    cmake构建c++工程动态静态库以及调用示例_#include_06
  • 生成结果
    cmake构建c++工程动态静态库以及调用示例_#include_07
  • 运行结果
    cmake构建c++工程动态静态库以及调用示例_#include_08

3. 源码

链接:​​https://pan.baidu.com/s/1pQNowtOHaGcCJWq-qQenhQ​​ 提取码:1b8q


举报

相关推荐

0 条评论