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

[C++][CMake] set_target_properties called with incorrect number of arguments

1 简介

这篇文章将探讨了在使用CMake构建C++项目时,调用set_target_properties函数时参数数量不正确所引发的问题。

2 错误案例

以下为可能发生错误的案例

include_directories (${CMAKE_SOURCE_DIR}/common)
find_package(Threads)add_library (libusbmuxd SHARED libusbmuxd.c sock_stuff.c ${CMAKE_SOURCE_DIR}/common/utils.c)
find_library (PTHREAD pthread)
target_link_libraries (libusbmuxd ${CMAKE_THREAD_LIBS_INIT})# 'lib' is a UNIXism, the proper CMake target is usbmuxd
# But we can't use that due to the conflict with the usbmuxd daemon,
# so instead change the library output base name to usbmuxd here
set_target_properties(libusbmuxd PROPERTIES OUTPUT_NAME usbmuxd)
set_target_properties(libusbmuxd PROPERTIES VERSION ${LIBUSBMUXD_VERSION})
set_target_properties(libusbmuxd PROPERTIES SOVERSION ${LIBUSBMUXD_SOVERSION})install(TARGETS libusbmuxdARCHIVE DESTINATION lib${LIB_SUFFIX}LIBRARY DESTINATION lib${LIB_SUFFIX}
)
install(FILES usbmuxd.h usbmuxd-proto.h DESTINATION include)

以上文件可能报错如下:

CMake error at CMakeLists.txt:12 (set_target_properties):set_target_properties called with incorrect number of arguments

3 原因分析

set_target_properties 函数的语法格式为

SET_TARGET_PROPERTIES(target1 target2 ... targetMPROPERTIES prop1 val1 prop2 val2 ... propN valN
)

变量LIBUSBMUXD_VERSION和LIBUSBMUXD_SOVERSION未定义,因此命令的语法是

SET_TARGET_PROPERTIES(target PROPERTIES name value)

很显然,这里少了value变量

4 解决方法

要解决这个问题,请尝试引用变量;使用“$ {LIBUSBMUXD_SOVERSION}”应确保即使变量未定义,它也会采用空字符串的值,从而遵守语法。

include_directories (${CMAKE_SOURCE_DIR}/common)
find_package(Threads)add_library (libusbmuxd SHARED libusbmuxd.c sock_stuff.c ${CMAKE_SOURCE_DIR}/common/utils.c)
find_library (PTHREAD pthread)
target_link_libraries (libusbmuxd ${CMAKE_THREAD_LIBS_INIT})# 'lib' is a UNIXism, the proper CMake target is usbmuxd
# But we can't use that due to the conflict with the usbmuxd daemon,
# so instead change the library output base name to usbmuxd here
set_target_properties(libusbmuxd PROPERTIES OUTPUT_NAME usbmuxd)
set_target_properties(libusbmuxd PROPERTIES VERSION " ${LIBUSBMUXD_VERSION}")
set_target_properties(libusbmuxd PROPERTIES SOVERSION " ${LIBUSBMUXD_SOVERSION}")install(TARGETS libusbmuxdARCHIVE DESTINATION lib${LIB_SUFFIX}LIBRARY DESTINATION lib${LIB_SUFFIX}
)
install(FILES usbmuxd.h usbmuxd-proto.h DESTINATION include)

相关文章:

[C++][CMake] set_target_properties called with incorrect number of arguments

1 简介 这篇文章将探讨了在使用CMake构建C项目时,调用set_target_properties函数时参数数量不正确所引发的问题。 2 错误案例 以下为可能发生错误的案例 include_directories (${CMAKE_SOURCE_DIR}/common) find_package(Threads)add_library (libusbmuxd SHARE…...

AdamW算法

AdamW算法是优化算法Adam的一个变体,它在深度学习中广泛应用。AdamW的主要改进在于它正则化方法的改变,即通过权重衰减(weight decay)而不是L2正则化,来控制模型参数的大小,从而提升了训练的稳定性和效果。…...

【c++进阶(二)】STL之string类的模拟实现

💓博主CSDN主页:Am心若依旧💓 ⏩专栏分类c从入门到精通⏪ 🚚代码仓库:青酒余成🚚 🌹关注我🫵带你学习更多c   🔝🔝 1.前言 本章重点 本章主要介绍一些关键接口的模拟实现&#xff…...

PHPStudy(xp 小皮)V8.1.1 通过cmd进入MySQL命令行模式

PHPStudy是一个PHP开发环境集成包,可用在本地电脑或者服务器上,该程序包集成最新的PHP/MySql/Apache/Nginx/Redis/FTP/Composer,一次性安装,无须配置即可使用。MySQL MySQL是一个关系型数据库管理系统,由瑞典 MySQL A…...

php反序列化初步了解

一、定义 序列化(串行化):将变量转换为可保存或传输的字符串的过程(通常是字节流、JSON、XML格式) 反序列比(反串行化):把这个字符串再转化成原始数据结构或对象(原来的…...

Windows系统电脑本地部署AI音乐创作工具并实现无公网IP远程使用

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 本文主要介绍如何在Windows系统电脑上快速本地部署一个文字生成音乐的AI创作工具MusicGPT,并结合cpolar内网穿透工具实现随时随地远程访问使用。 MusicG…...

玩转Linux进度条

准备工作&#xff1a; 一.关于缓冲区 首先&#xff0c;咱们先来一段有意思的代码&#xff1a; #include<stdio.h> #include<unistd.h> int main() {printf("you can see me");sleep(5);} 你可以在你的本地运行一下&#xff0c;这里我告诉大家运行结果…...

真国色码上赞,科技流量双剑合璧,商家获客新纪元开启

在数字化浪潮汹涌的今天,真国色研发团队依托红玉房网络科技公司的雄厚实力,凭借科技领先的核心竞争力,推出了创新性的商家曝光引流工具——码上赞。这款工具借助微信支付与视频号已有功能,为实体商家提供了一种全新的引流获客方式,实现了科技与商业的完美融合。 科技领先,流量黑…...

C++:特殊类设计和四种类型转换

一、特殊类设计 1.1 不能被拷贝的类 拷贝只会放生在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C98&#xff1a; 1、将拷贝构造函数与赋值运算符重载只…...

(南京观海微电子)——屏幕材质及优缺点对比

LED/LCD LCD&#xff08;Liquid Crystal Ddisplay&#xff09;即“液晶显示器”&#xff0c;由两块偏光镜、两块薄膜晶体管以及彩色滤光片、光源&#xff08;荧光灯&#xff09;、显示面板组成的成像元器件。 LED&#xff08;Light Emitting Diode&#xff09;即“发光二极管…...

uniapp uni.showModal 出现点击没有反应

uni.showModal 里面有好些参数 点击后不弹出 是因为 出现了 null 或者undifind 字符 特别是content 里面 title: 提示, cancelColor: #000000, editable: true,//是否显示输入框 content: item.text?item.te…...

Vue3-VueRouter

客户端 vs. 服务端路由​ 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时&#xff0c;浏览器会从服务端获得全新的 HTML&#xff0c;然后重新加载整个页面。 然而&#xff0c;在单页面应用中&a…...

【图像处理与机器视觉】频率域滤波

知识铺垫 复数 CRjI 可以看作复平面上的点&#xff0c;则该复数的坐标为&#xff08;R&#xff0c;I&#xff09; 欧拉公式 e j θ c o s θ j s i n θ e^{j\theta} cos \theta j sin \theta ejθcosθjsinθ 极坐标系中复数可以表示为&#xff1a; C ∣ C ∣ ( c o s…...

python第五次作业

1.请实现一个装饰器&#xff0c;每次调用函数时&#xff0c;将函数名字以及调用此函数的时间点写入文件中 # 导入datetime模块&#xff0c;用于获取当前时间并格式化输出 import datetime# 定义一个装饰器工厂函数log_funcName_time&#xff0c;它接受一个参数time def log_fu…...

JS面向对象编程

目录 实例对象与new命令this关键字对象的原型和继承Object对象的相关方法浅拷贝和深拷贝严格模式实例对象与new命令 构造函数 构造函数的特点有两个: 函数体内部使用了this关键字,代表了所要生成的对象实例。生成对象的时候,必须使用new命令。var Vehicle...

kotlin1.8.10问题导致gson报错TypeToken type argument must not contain a type variable

书接上回&#xff0c;https://blog.csdn.net/jzlhll123/article/details/139302991。 之前我发现gson报错后&#xff1a; gson在2.11.0给我的kotlin项目代码报错了。 IllegalArgumentException: TypeToken type argument must not contain a type variable 上次解释原因是因为&…...

数据库漫谈-国产数据库

国产数据库突然大量出现&#xff0c;下表列出&#xff08;按首字母排序 &#xff09; AISWare AntDB&#xff0c;亚信科技。 AliSQL&#xff0c;阿里云。 Analyticdb&#xff0c;阿里云。 ArkDB&#xff0c;北京极数云舟科技有限公司。 CynosDB&#xff0c;腾讯云 DM&…...

小白跟做江科大32单片机之光敏传感器控制蜂鸣器

代码部分 1.思路 通过光敏电阻&#xff0c;控制蜂鸣器的发声 2.butter.h代码 #ifndef _BUTTER__H #define _BUTTER__H void butter_Init(void); void butter_on(void); void butter_off(void); #endif 3.butter.c代码 #include "stm32f10x.h" void butter…...

使用 Django Channels 构建实时聊天应用(包含用户认证和消息持久化)

文章目录 准备工作创建 Django 项目创建应用程序配置项目编写 Consumer编写路由创建 URL 路由运行应用用户认证消息持久化显示历史消息结论 Django Channels 是 Django 的一个扩展&#xff0c;允许在 Web 应用中添加实时功能&#xff0c;例如 Websockets、HTTP2 和其他协议。本…...

【Elasticsearch】es基础入门-03.RestClient操作文档

RestClient操作文档 示例&#xff1a; 一.初始化JavaRestClient &#xff08;一&#xff09;引入es的RestHighLevelClient依赖 <!--elasticsearch--> <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest…...

基于Multisim的四路带计分系统抢答器设计与仿真

摘要&#xff1a;本项目设计了一个四路带计分系统的智能抢答器&#xff0c;具有声光显示、计时和计分功能。使用Multisim 14.3进行电路设计 与仿真验证。项目简介本项目设计了一个基于Multisim的四路带计分系统智能抢答器&#xff0c;采用74系列数字逻辑芯片实现纯硬件电路设计…...

别再死记硬背了!用Python+MATLAB/Simulink,5步搞定自动控制原理的时域分析(附代码)

从理论到代码&#xff1a;用PythonMATLAB玩转自动控制时域分析 为什么我们需要用代码实现控制理论&#xff1f; 翻开任何一本自动控制原理教材&#xff0c;满眼都是微分方程、传递函数和响应曲线。传统学习方法强调手工计算和记忆公式&#xff0c;但现代工程师更需要的是将抽象…...

全球AI范式变革与中国产业的破局路径

全球AI范式变革与中国产业的破局路径摘要当前全球人工智能产业正处于范式切换的关键节点&#xff0c;底层技术路线的竞争已经从参数规模竞赛转向认知框架的本质性革新。本文基于2026年行业最新发展动态&#xff0c;系统分析当前主流AI范式的内生性缺陷&#xff0c;梳理中美AI产…...

DMXAPI:国产多模态大模型API聚合平台,让开发者一键调用通义千问等主流模型

在国产大模型百花齐放的今天&#xff0c;如何高效、稳定地接入各类模型能力&#xff0c;成为开发者和企业面临的核心痛点。DMXAPI 应运而生&#xff0c;作为中国多模态大模型API聚合平台&#xff0c;致力于打造"国产模型一站式调用中心"&#xff0c;让开发者无需对接…...

Word到LaTeX的工业级转换:docx2tex深度解析与技术实践

Word到LaTeX的工业级转换&#xff1a;docx2tex深度解析与技术实践 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 在学术出版和技术文档领域&#xff0c;Word与LaTeX之间的格式鸿沟一直是困扰…...

python flash加一个字段

USE product_db; ALTER TABLE products ADD COLUMN remark TEXT COMMENT 商品备注信息&#xff0c;支持长文本 AFTER cost_price;2. 修改数据访问层&#xff08;product_dao.py&#xff09;需要在以下函数中添加 remark 字段的处理&#xff1a;修改 get_all_products 函数&…...

DECA加速器:神经网络模型压缩的硬件优化方案

1. DECA加速器&#xff1a;神经网络模型压缩的硬件突围在AI推理领域&#xff0c;模型压缩技术如同给神经网络"瘦身"——通过量化和稀疏化减少参数规模&#xff0c;但压缩后的数据需要解压才能计算&#xff0c;这个"拆包装"的过程往往成为性能瓶颈。传统CPU…...

射频集成电路中MIM电容与多晶硅电阻的建模与优化

1. MIM电容布局模型解析在射频集成电路设计中&#xff0c;金属-绝缘体-金属&#xff08;MIM&#xff09;电容因其高密度、高线性度和良好的匹配特性而成为关键被动元件。图14(a)展示了典型的MIM电容布局结构&#xff0c;采用上下金属层夹介质层的三明治结构。1.1 电容模型构成原…...

DNS欺骗攻击原理与Wireshark实战防御指南

1. 这不是黑客电影桥段&#xff0c;而是每天都在发生的网络基础层失守DNS欺骗攻击——这个词听起来像极了影视作品里黑衣人敲几行代码就让银行网站跳转到钓鱼页面的炫技桥段。但现实远比剧情更朴素、更隐蔽、更危险&#xff1a;它不依赖0day漏洞&#xff0c;不挑战防火墙规则&a…...

混合数据聚类算法实战:k-prototypes深度解析与应用

混合数据聚类算法实战&#xff1a;k-prototypes深度解析与应用 【免费下载链接】kmodes Python implementations of the k-modes and k-prototypes clustering algorithms, for clustering categorical data 项目地址: https://gitcode.com/gh_mirrors/km/kmodes kmodes…...