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

CMake笔记:install(TARGETS target,...)无法安装的Debug/lib下

1. 问题描述

按如下CMake代码,无法将lib文件安装到Debug/lib或Release/lib目录下,始终安装在CMAKE_INSTALL_PREFIX/lib下。

install(TARGETS targetCONFIGURATIONS DebugLIBRARY DESTINATION Debug/lib)
install(TARGETS targetCONFIGURATIONS ReleaseLIBRARY DESTINATION Release/lib)

2. 原因

开始以为是CMake的bug,换了低版本的CMake 3.12.4,运行有错误提示,高版本反而没这个提示。
在这里插入图片描述

问了下文心一言,回答如下:

  • ARCHIVE(静态库): 静态库是一种包含函数和变量的库文件,在链接阶段被复制到最终的可执行文件中。 在CMake中,静态库通常通过add_library命令创建,并指定库的类型为STATIC。
    静态库文件通常具有.a(在Unix-like系统上)或.lib(在Windows上)扩展名。
    静态库在编译时被完整地嵌入到最终的应用程序中,因此最终的应用程序通常较大,但运行时不需要额外的库文件。
  • LIBRARY(动态库或共享库): 动态库或共享库是一种包含函数和变量的库文件,与静态库不同,它们在运行时被链接到最终的可执行文件中。 在CMake中,动态库也通过add_library命令创建,但库的类型被指定为SHARED。
    动态库文件通常具有.so(在Unix-like系统上)或.dll(在Windows上)扩展名。
    动态库在编译时不会被完整地嵌入到最终的应用程序中,而是作为独立的文件存在。运行时,应用程序需要动态地加载这些库文件。
  • RUNTIME(可执行文件): 可执行文件是由源代码编译而成的、可以直接运行的程序。 在CMake中,可执行文件通过add_executable命令创建。
    可执行文件通常具有与平台相关的扩展名,如.exe(在Windows上)或无扩展名(在Unix-like系统上)。
    可执行文件包含了程序的所有代码和数据,可以直接在目标平台上运行。

我编译的正是静态库,所以要使用ARCHIVE, 不能用LIBRARY

3. 解决方案

关键字由LIBRARY改为ARCHIVE即可。

install(TARGETS ${PROJECT_NAME} CONFIGURATIONS Debug ARCHIVE DESTINATION Debug/lib )
install(TARGETS ${PROJECT_NAME} CONFIGURATIONS Release ARCHIVE DESTINATION Release/lib )

相关文章:

CMake笔记:install(TARGETS target,...)无法安装的Debug/lib下

1. 问题描述 按如下CMake代码,无法将lib文件安装到Debug/lib或Release/lib目录下,始终安装在CMAKE_INSTALL_PREFIX/lib下。 install(TARGETS targetCONFIGURATIONS DebugLIBRARY DESTINATION Debug/lib) install(TARGETS targetCONFIGURATIONS Release…...

使用ENSP实现NAT

一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为12.12.12.1/30 ip address 12.12.12.1 30进入e0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置…...

漫步北京小程序构建智慧出行,打造旅游新业态模式

近年来,北京市气象服务中心持续加强推进旅游气象服务,将旅游气象监测预警基础设施纳入景区配套工程,提升气象和旅游融合发展水平,服务建设高品质智慧旅游强市。 天气条件往往影响着旅游景观的体验,北京万云科技有限公…...

对齐输出

对齐输出 C语言代码C 语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 输入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。 输入 只有一行,包含三个整数&…...

Wekan看板安装部署与使用介绍

Wekan看板安装部署与使用介绍 1. Wekan简介 ​ Wekan 是一个开源的看板式项目管理工具,它的配置相对简单,因为大多数功能都是开箱即用的。它允许用户以卡片的形式组织和跟踪任务,非常适合敏捷开发和日常任务管理。Wekan 的核心功能包括看板…...

VisionPro 机器视觉案例 之 黑色齿轮

第十五篇 机器视觉案例 之 齿轮齿数检测 文章目录 第十五篇 机器视觉案例 之 齿轮齿数检测1.案例要求2.实现思路2.1 统计齿轮齿数使用模板匹配工具CogPMAlignTool,并从模板匹配工具的结果集中得到每一个齿的中心点。2.2 测量距离需要知道两个坐标点,一个…...

学习python的第十三天之数据类型——函数传参中的传值和传址问题

学习python的第十三天之数据类型——函数传参中的传值和传址问题 函数传参中的传值和传址问题 函数传参的机制可以理解为传值(pass-by-value)和传址(pass-by-reference)的混合体,但实际上更接近于传对象引用&#xff…...

Windows11深度学习环境配置

CUDA、CUDNN 一、安装另一个版本的CUDA 下载.exe文件,网址打不开自己开热点就能解决:CUDA Toolkit 11.2 Downloads | NVIDIA Developer 若遇到“You already have a newer version of the NVIDIA Frameview SDK installed” 1.把电脑已经存在的FrameVi…...

电销老是被标记,该如何解决!!!

在当今的商业世界中,电话销售依然是许多企业拓展业务、接触客户的重要手段。然而,电销人员常常面临一个令人头疼的问题 —— 老是被标记。 一、电销被标记的困扰 当你的电话号码被频繁标记为 “骚扰电话”“推销电话” 等,会带来一系列不良…...

MyBatis入门——基本的增删改查

目录 一、MyBatis简介 二、搭建MyBatis (一)配置依赖 (二)log4j日志功能 (三)数据库配置文件——jdbc.properties (四)创建MyBatis的核心配置文件 (五)使用MyBatisX插件 三、项目其他配置搭建 (一)创建数据库连接工具类 (二)创建表 (三)创建数据库的实体类 (四)Use…...

学习Gentoo系统中二进制软件包和源代码包的概念

Gentoo Linux 是一个以源代码包管理和高度定制化特性著称的Linux发行版。以下是关于Gentoo系统中二进制软件包和源代码包的概念、发展历程以及它们各自的优势: 二进制软件包概念及发展历程: 概念:Gentoo的二进制软件包是指预先编译好的软件包…...

麦肯锡报告 | 未来的经济引擎:解读下一代竞争领域

随着科技和商业的快速发展,一些具有高增长性和高动态性的行业正在悄然崛起,成为推动全球经济发展的新引擎。这些行业被称为“竞争领域”(Arenas)。据麦肯锡全球研究院(MGI)的研究,这些领域有望在…...

连接mysql并读取指定表单数据到DataFrame

提问 python 如何连接mysql并读取指定表单数据到DataFrame 解答 要在Python中连接MySQL并读取指定表单数据到DataFrame,你可以使用pandas库结合sqlalchemy引擎或者mysql-connector-python。这里我将展示两种方法的示例代码。 使用pandas和sqlalchemy 确保安装了…...

从入门到精通数据结构----四大排序(上)

目录 首言: 1. 插入排序 1.1 直接插入排序 1.2 希尔排序 2. 选择排序 2.1 直接选择排序 2.2 堆排序 3. 交换排序 3.1 冒泡排序 3.2 快排 结尾: 首言: 本篇文章主要介绍常见的四大排序:交换排序、选择排序、插入排序、归并排…...

【bug】使用transformers训练二分类任务时,训练损失异常大

使用transformers训练二分类任务时,训练损失异常大 问题分析 问题 training_loss异常大,在二分类损失中,收敛在1~2附近,而eval_loss却正常(小于0.5) 分析 参考: Bug in gradient accumulation…...

文献阅读与笔记整理技巧

文献阅读 1.原因 (1)了解背景知识(硕博学位论文,大牛文献综述) (2)把握研究方向(行业最新论文,大牛文献综述) (3)学习设计思路&am…...

Python Flask中集成SQLAlchemy和Flask-Login

在现代Web应用开发中,数据库和用户认证是两个非常重要的功能。Flask作为一个轻量级的Python Web框架,本身只提供了最基本的Web功能。但是,它可以通过集成各种优秀的扩展库来增强功能。本文将介绍如何在Flask应用中集成SQLAlchemy(数据库)和Flask-Login(用户认证),并提供一个完整…...

esp32 JTAG 串口 bootload升级

文章目录 一、前言二、了解 JTAG 和 Ymodem 的工作原理2.1 环境准备2.2 Ymodem 协议工作原理2.3 固件分区准备 三、关键升级函数五、使用shell 测试 一、前言 如果使用 JTAG 串口 结合 Ymodem 协议 实现 ESP32 的固件升级,整体逻辑将围绕通过串口传输固件文件并将其…...

【linux】(17)压缩和解压

tar tar 是一个用于创建、维护、修改和解压缩存档文件的 Linux 命令。tar 常常用于备份文件或者将多个文件打包成一个文件以便于传输或存储。以下是 tar 命令的详细教程,包括常用选项和示例: 基本语法 tar [选项] [文件或目录]常用选项 -c&#xff1…...

摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现

随着科技的不断进步,摄像机视频分析软件的发展已经为我们的生活带来了许多便捷。其中,LiteAIServer视频智能分析平台的玩手机打电话检测算法技术尤为突出,它利用先进的图像处理和人工智能技术,能够自动识别并监控视频中的玩手机或…...

闪豆视频下载器 v20260329-B站抖音爱优腾多平台批量下载,画质自选速度快

一款面向电脑端打造的多平台视频批量下载工具,支持 B 站、A 站、抖音、爱奇艺、优酷、腾讯视频等主流内容平台,覆盖范围较广,适合经常需要从不同平台保存视频内容的用户使用。 软件操作流程简单直接,解析和下载过程清晰易懂&#…...

丹青识画GPU算力优化部署教程:显存占用降低40%实操

丹青识画GPU算力优化部署教程:显存占用降低40%实操 1. 引言:当艺术邂逅算力,如何优雅地“瘦身”? 想象一下,你刚部署好一个能看懂画作、还能用书法题诗的AI应用——“丹青识画”。它融合了前沿的多模态AI与东方美学&…...

Linux 中的硬链接和软连接是什么,二者有什么区别?

在 Linux 文件系统中,**硬链接(Hard Link)和软链接(Soft Link,又称符号链接 Symbolic Link)**是两种不同的文件引用方式。它们都允许用户通过不同的路径访问同一个文件内容,但它们的实现机制、限…...

Qwen2.5-7B入门实战:从Docker到网页服务的全流程解析

Qwen2.5-7B入门实战:从Docker到网页服务的全流程解析 1. 引言:为什么选择Qwen2.5-7B Qwen2.5-7B是阿里最新开源的大语言模型,相比前代版本在知识量、编程能力和数学能力上有显著提升。对于想要快速体验大模型能力的开发者来说,通…...

Stable Diffusion 2.0超分实战:4倍放大图片还能保持清晰度的秘密

Stable Diffusion 2.0超分实战:4倍放大图片还能保持清晰度的秘密 在数字图像处理领域,超分辨率技术一直是设计师和开发者关注的焦点。传统放大方法往往导致图像模糊、细节丢失,而基于深度学习的超分方案正在改变这一局面。Stable Diffusion 2…...

背包模型(求组合)?爬楼梯模型(求排列)?

普通背包模型和爬楼梯模型是非常相似的两个模型。 首先,我们定义一个**“抽象背包模型”**(注意这个抽象背包模型不是前面提到的普通背包模型):给定 n 个物品,装满容积为 m 的背包,求方案数/具体方案/等等…...

Qt跨平台即时通讯实战:从界面设计到TCP通信的完整实现

1. Qt跨平台即时通讯开发概述 用Qt框架开发即时通讯软件最大的优势就是"一次编写,到处运行"。我去年接手过一个项目,需要在Windows和Linux双平台上部署聊天工具,当时尝试过多种技术方案,最终Qt以绝对优势胜出。想象一下…...

开源可部署!PyTorch 2.8 RTX 4090D镜像在企业AIGC生产环境落地实践

开源可部署!PyTorch 2.8 RTX 4090D镜像在企业AIGC生产环境落地实践 1. 为什么选择这个深度学习镜像 在当今AI技术快速发展的背景下,企业面临的最大挑战之一是如何快速搭建稳定高效的AI开发环境。传统方式需要手动配置CUDA、PyTorch和各种依赖库&#x…...

YUI Compressor CSS压缩黑科技:从background-position到media query的全面优化指南

YUI Compressor CSS压缩黑科技:从background-position到media query的全面优化指南 【免费下载链接】yuicompressor YUI Compressor 项目地址: https://gitcode.com/gh_mirrors/yu/yuicompressor YUI Compressor是一款由Yahoo!开发的终极CSS和JavaScript压缩…...

002MCP

MCP...