【CMake实例篇】04.创建一个共享库dll或so

您所在的位置:网站首页 dll编写实例 【CMake实例篇】04.创建一个共享库dll或so

【CMake实例篇】04.创建一个共享库dll或so

2023-03-24 22:59| 来源: 网络整理| 查看: 265

文章目录说明核心实现代码目录代码实现添加共享库Alias TargetLinking a Shared Library编译运行

说明

展示了一个 hello world 示例,它首先创建并链接了一个共享库。

核心实现 代码目录

 |-📁prj04   |-- 🎴CMakeLists.txt   |-📁include    |-📁shared     |-- 📄Hello.h   |-📁src    |-- 📄Hello.cpp    |-- 📄main.cpp

代码实现 /prj04/CMakeLists.txt cmake_minimum_required(VERSION 3.5)project(hello_library)############################################################ # 创建一个库 #############################################################从库源生成共享库 add_library(hello_library SHARED src/Hello.cpp ) add_library(hello::library ALIAS hello_library)target_include_directories(hello_libraryPUBLIC ${PROJECT_SOURCE_DIR}/include )############################################################ # 创建可执行程序 #############################################################添加具有上述源的可执行文件 add_executable(hello_binarysrc/main.cpp )#将新的 hello_library 目标与 hello_binary 目标链接起来 target_link_libraries( hello_binaryPRIVATE hello::library ) /prj04/include/shared/Hello.h #ifndef __HELLO_H__ #define __HELLO_H__#ifdef _MSC_VER#define DLL_EXPORT_DECL __declspec(dllexport) #else#define DLL_EXPORT_DECL #endif//msvc编辑器 _declspec(dllexport),这个你不加windows编译不过 //只有在widnows平台添加这个宏 才会生成 hello_library.lib,否则咱们函数没导出去 //minggw编辑器 加不加_declspec(dllexport)都可以class DLL_EXPORT_DECL Hello { public:void print(); };#endif /prj04/src/Hello.cpp #include #include "shared/Hello.h"void Hello::print() {std::cout


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3