美文网首页
cmake文件添加静态库和动态库

cmake文件添加静态库和动态库

作者: 岁月静好忄 | 来源:发表于2022-10-26 14:50 被阅读0次
添加静态库
target_link_libraries( ${PROJECT_NAME} PUBLIC E:/Project/cpp/learnOpenGL/ThirdParty/glfw/glfw3.lib )

说明:
1、target_link_libraries必须放在add_executable或者add_library之后
2、${PROJECT_NAME}是工程名称,一般设置了project(HelloWorld)才会直接用${PROJECT_NAME}
3、PUBLIC其他可用的字符还有 PRIVATEINTERFACE

PUBLIC 在public后面的库会被Link到你的target中,并且里面的符号也会被导出,提供给第三方使用。
PRIVATE 在private后面的库仅被link到你的target中,并且终结掉,第三方不能感知你调了啥库
INTERFACE 在interface后面引入的库不会被链接到你的target中,只会导出符号。

为了防止找不到符号和链接问题,推荐使用PUBLIC
4、E:/Project/cpp/learnOpenGL/ThirdParty/glfw/glfw3.lib这一串东西就是静态库的位置。

添加动态库
## 拷贝单个动态库文件
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD       
    COMMAND ${CMAKE_COMMAND} -E copy_if_different 
       "E:/Project/cpp/learnOpenGL/ThirdParty/opencv-3.4.6/x64/vc16/bin/opencv_world346d.dll"  #需要拷贝的文件 
        "${CMAKE_BINARY_DIR}/Debug") #拷贝到哪个目录

## 拷贝多个动态库文件,直接将所有的动态库放到文件夹下,拷贝文件夹即可
add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD 
    COMMAND ${CMAKE_COMMAND} -E copy_directory 
   "${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/OpenCV/bin/win64"  #需要拷贝的文件夹
   "${CMAKE_BINARY_DIR}/Debug" )#拷贝到哪个目录

其实动态库基本都是拷贝到可执行文件目录下的,因为之所以叫动态库,就是程序在运行时加载的文件,所以要把程序依赖的动态库直接拷贝到可执行文件的目录下即可。

相关文章

  • cmake文件添加静态库和动态库

    添加静态库 说明:1、target_link_libraries必须放在add_executable或者add_l...

  • iOS 静态库封装

    静态库和动态库 静态库和动态库存在形式 静态库:以.a 和 .framework为文件后缀名。 动态库:以.tbd...

  • Ndk生成so和a库,然后主项目进行调用

    在 NDK 开发中引入第三方静态库和动态库 静态库和动态库 静态库 静态库文件后缀一般为 .a ,利用静态库编译成...

  • 静态库

    静态库 静态库动态库简介 .a 静态库:被编译好的二进制文件 静态库:.a, .framework 动态库: .d...

  • iOS framework 简单笔记

    1. framework动态库可以包含静态库和bundle资源文件 2. framework静态库不能包含动态库 ...

  • iOS 动态库和静态库

    一、简介 静态库和动态库的存在形式 静态库和动态库在使用上的区别 静态库:链接时,静态库会被完整地复制到可执行文件...

  • iOS 静态库和动态库的制作

    静态库和动态库 一、静态库和动态库的存在形式 静态库: .a 和 .framework 动态库: .dylib 和...

  • 动态库与静态库小看法

    对比动态库与动态库区别和个人看法 动态库与静态库对比一览表 动态库静态库文件名windows: *.dll li...

  • iOS中的库

    静态库和动态库的存在的形式 静态库:以.a 和 .framework为文件后缀名。 动态库:以.tbd(之前叫.d...

  • 静态库和动态库

    静态库和动态库的存在形式静态库:.a 和 .framework动态库:.dylib 和 .framework 静态...

网友评论

      本文标题:cmake文件添加静态库和动态库

      本文链接:https://www.haomeiwen.com/subject/fyiazrtx.html