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

7.在程序中链接静态库

在cmake中,链接静态库的命令如下:
link_libraries( [...])

如果该静态库不是系统提供的(自己制作或者使用第三方提供的静态库)可能出现静态库找不到的情况,此时可以将静态库的路径也指定出来:
link_directories()

将静态库放入lib1文件中,动态库放入lib2文件中,删除src,通过main.cpp进行测试
cmake_minimum_required(VERSION 3.10.2)
project(test)

aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC) #PROJECT_SOURCE_DIR就是CMakefileLists.txt所在路径

file(GLOB SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) #CMAKE_CURRENT_SOURCE_DIR就是CMakefileLists.txt所对应的路径
include_directories(${PROJECT_SOURCE_DIR}/include)

set(CMAKE_CXX_STANDARD 11)

link_libraries(calc) #静态库名
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib1) #静态库文件路径
add_executable(app ${SRC})

image
生成可执行程序的时候首先把对应的源文件指定出来(通过file进行搜索),然后通过link_libraries将库文件追加到app中去
add_executable除了加载SRC的文件,还会加载库文件,然后把源文件和库文件链接,最后生成可执行程序app
如果使用静态库,在生成app时静态库和原文件都会打包到对应的可执行程序里去,动态库不会,要等应用程序调用动态库数据,动态库才会被加载到内存中
静态链接就是每个程序都包含一份库,动态链接就是所有用到该库的程序共享一份库文件

http://www.jsqmd.com/news/205481/

相关文章:

  • Server-Sent Events实现:VibeThinker构建实时通知系统
  • Mapshaper:地理数据处理的神器,零基础也能轻松上手
  • Z-Image真实感生成实测:人像、产品图细节还原度惊人
  • WorkshopDL使用全攻略:轻松下载Steam创意工坊模组
  • 打造个人游戏串流中心:Sunshine服务器全方位配置指南
  • 3步精通YuukiPS启动器:原神多账号管理与网络优化终极方案
  • 8.在程序中链接动态库
  • Sunshine云游戏服务器终极搭建指南:免费开启跨平台游戏新纪元
  • 9.在cmake中打印日志信息
  • Sunshine游戏串流:打造专属云游戏平台的完整指南
  • 如何快速上手MOOTDX:Python量化投资的终极入门指南
  • Apollo Client缓存策略:AI调整Normalized存储结构
  • 2026马年丽江旅拍TOP5权威榜:雪山古城见证甜蜜,真实口碑+服务实力双测评 - charlieruizvin
  • LitElement自定义元素:AI创建高性能Web Component
  • 2026年知名的户外墙体广告,墙体广告公司,全国墙体广告公司用户口碑推荐清单 - 品牌鉴赏师
  • 2026深圳办公选址指南:创业办公楼、企业孵化园区与联合办公室租赁推荐 - 品牌2026
  • WeMod终极解锁指南:免费获取专业版完整功能
  • 刷题日记 2026.1.6 最大子序和
  • 思源黑体TTF:构建专业级多语言字体解决方案的完整指南
  • 如何快速掌握Vectorizer:图像矢量化完整指南
  • VSCode终端聊天功能全解析:3步实现团队协作效率翻倍
  • c++ qt开发第一天 hello world
  • 智能高效!一键完成Chrome浏览器完整网页长截图终极指南
  • YuukiPS启动器完全指南:5步搞定原神多账号管理难题
  • Sunshine云游戏终极指南:开启跨设备游戏新时代
  • 【西南交通大学、江西科技师范大学先进电子材料与器件江西省重点实验室主办,有保障 | SPIE出版,同时拥有双刊号,往届均已见刊EI检索】第五届电子信息工程与数据处理国际学术会议(EIEDP 2026)
  • 免费图像矢量化工具:PNG转SVG的完整使用指南
  • 游戏串流终极指南:3步打造你的私人云游戏帝国!
  • ncmdumpGUI深度解析:高效实现网易云音乐NCM文件跨平台播放的专业解决方案
  • 【VSCode高手进阶】:构建个性化多模型开发环境的7个步骤