当前位置: 首页 > wzjs >正文

威县做网站哪儿便宜太原seo顾问

威县做网站哪儿便宜,太原seo顾问,微商怎么做自己的网站,购物网站建设 优帮云在 CMake 中,生成静态库(Static Library)或动态库(Shared Library)非常简单。CMake 提供了 add_library 命令来定义库文件,并通过参数指定库的类型(静态库或动态库)。以下是详细的步…

在 CMake 中,生成静态库(Static Library)或动态库(Shared Library)非常简单。CMake 提供了 add_library 命令来定义库文件,并通过参数指定库的类型(静态库或动态库)。以下是详细的步骤和示例:


1. 生成静态库

静态库在编译时会被完整地链接到可执行文件中,生成的文件扩展名通常为 .lib(Windows)或 .a(Linux/macOS)。

示例代码
cmake_minimum_required(VERSION 3.10)
project(MyLibraryProject)# 添加静态库
add_library(MyStaticLibrary STATIC src/utils.cpp)# 设置静态库的输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
说明
  • add_library(MyStaticLibrary STATIC src/utils.cpp)
    • MyStaticLibrary 是库的名称。
    • STATIC 表示生成静态库。
    • src/utils.cpp 是库的源文件。
  • CMAKE_ARCHIVE_OUTPUT_DIRECTORY:用于设置静态库的输出目录。

2. 生成动态库

动态库在运行时被加载,生成的文件扩展名通常为 .dll(Windows)或 .so(Linux/macOS)。

示例代码
cmake_minimum_required(VERSION 3.10)
project(MyLibraryProject)# 添加动态库
add_library(MySharedLibrary SHARED src/utils.cpp)# 设置动态库的输出目录
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
说明
  • add_library(MySharedLibrary SHARED src/utils.cpp)
    • MySharedLibrary 是库的名称。
    • SHARED 表示生成动态库。
    • src/utils.cpp 是库的源文件。
  • CMAKE_LIBRARY_OUTPUT_DIRECTORY:用于设置动态库的输出目录。

3. 同时生成静态库和动态库

如果需要同时生成静态库和动态库,可以定义两个不同的目标:

示例代码
cmake_minimum_required(VERSION 3.10)
project(MyLibraryProject)# 添加静态库
add_library(MyStaticLibrary STATIC src/utils.cpp)# 添加动态库
add_library(MySharedLibrary SHARED src/utils.cpp)# 设置输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # 静态库
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # 动态库

4. 设置库的版本和导出符号

对于动态库,通常需要设置版本号和导出符号。

示例代码
cmake_minimum_required(VERSION 3.10)
project(MyLibraryProject)# 添加动态库
add_library(MySharedLibrary SHARED src/utils.cpp)# 设置库的版本号
set_target_properties(MySharedLibrary PROPERTIESVERSION 1.0.0SOVERSION 1
)# 导出符号(Windows 下需要)
if (WIN32)target_compile_definitions(MySharedLibrary PRIVATE MYSHAREDLIBRARY_EXPORTS)
endif()
说明
  • VERSIONSOVERSION:用于设置库的版本号。
  • target_compile_definitions:在 Windows 下,通常需要导出符号(通过 __declspec(dllexport))。

5. 链接库文件

生成库文件后,可以在其他目标中链接这些库。

示例代码
cmake_minimum_required(VERSION 3.10)
project(MyProject)# 添加可执行文件
add_executable(MyProgram main.cpp)# 链接静态库
target_link_libraries(MyProgram MyStaticLibrary)# 或者链接动态库
target_link_libraries(MyProgram MySharedLibrary)

6. 完整示例

以下是一个完整的示例,展示如何生成静态库和动态库,并在可执行文件中链接它们:

cmake_minimum_required(VERSION 3.10)
project(MyLibraryProject)# 设置输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # 静态库
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # 动态库
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) # 可执行文件# 添加静态库
add_library(MyStaticLibrary STATIC src/utils.cpp)# 添加动态库
add_library(MySharedLibrary SHARED src/utils.cpp)# 设置动态库的版本号
set_target_properties(MySharedLibrary PROPERTIESVERSION 1.0.0SOVERSION 1
)# 添加可执行文件
add_executable(MyProgram main.cpp)# 链接静态库
target_link_libraries(MyProgram MyStaticLibrary)# 或者链接动态库
target_link_libraries(MyProgram MySharedLibrary)

7. 构建项目

在项目根目录下运行以下命令来构建项目:

mkdir build
cd build
cmake ..
cmake --build .

构建完成后:

  • 静态库会生成在 build/lib/ 目录下(如 libMyStaticLibrary.aMyStaticLibrary.lib)。
  • 动态库会生成在 build/lib/ 目录下(如 libMySharedLibrary.soMySharedLibrary.dll)。
  • 可执行文件会生成在 build/bin/ 目录下。

总结

  • 使用 add_library 生成静态库(STATIC)或动态库(SHARED)。
  • 通过 CMAKE_ARCHIVE_OUTPUT_DIRECTORYCMAKE_LIBRARY_OUTPUT_DIRECTORY 设置库的输出目录。
  • 使用 target_link_libraries 链接库文件到可执行文件。
  • 动态库可以设置版本号和导出符号(特别是在 Windows 下)。
http://www.dtcms.com/wzjs/65512.html

相关文章:

  • 网站建设应计入什么科目永久8x的最新域名
  • wordpress 页面权限科学新概念seo外链平台
  • wordpress模版丢失seo工具不包括
  • 行业网站建设报价如何注册一个域名
  • 北京建立公司网站宁波网络优化seo
  • 合肥软件公司20强排行榜上海关键词优化排名软件
  • 专题研究网站建设工作动态百度纯净版首页入口
  • wordpress软件网站模板下载企业seo网络营销
  • 打开网站弹出广告jsxp优化大师
  • 静态网站有哪些优点电脑优化工具
  • 网站开发与维护都有些什么百度推广一般要多少钱
  • dede批量建站做网络推广
  • 宝安做棋牌网站建设有哪些公司ai智能搜索引擎
  • 做网站还是app省钱太原seo推广
  • 注销网站和取消接入百度广告买下的订单在哪里找
  • wordpress文章置顶2篇郑州seo联系搜点网络效果好
  • 全套网站建设google关键词工具
  • 两学一做 专题网站下载百度
  • 企业网站推广联系方式百度搜索关键词设置
  • 什么企业做网站网络推广好做吗?
  • 3g网站跳转网站推广网络推广
  • 有专门做房孑特卖的网站吗郑州疫情最新动态
  • 网上商城前端模板windows优化大师是什么软件
  • 网站建设工作思路软文标题大全
  • 中国建设银行官方网站 m.ccb.com典型的口碑营销案例
  • 代码错误网站如何快速被百度收录
  • 广州新塘网站制作推广免费私人网站建设软件
  • 营销型 网站开发青岛网站关键词优化公司
  • 做百度企业网站如何免费注册网站
  • 网站春节放假百度快照和广告的区别