add_library(<name> INTERFACE [IMPORTED] [GLOBAL])

本文详细介绍了如何使用 CMake 创建接口库,并通过 set_property 和 target_link_libraries 等命令来设置接口属性,包括链接库、包含目录、编译选项及定义等。
部署运行你感兴趣的模型镜像
作用:
创建一个接口库
属性:
该接口可被设置属性,也可被安装,导出和导入。一般使用以下方法设置它的属性(INTERFACE_*):
1.set_property()
2.target_link_libraries(INTERFACE)
3.target_include_directories(INTERFACE)
=》添加一个include目录到目标文件,即INTERFACE
4.target_compile_options(INTERFACE)
5.target_compile_definitions(INTERFACE)
最后:
该接口作为target_link_libraries()的参数被使用

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

CMake(Cross-platform Make)是Kitware公司主导的一个开源的、跨平台自动化构建、测试系统。CMake(Cross-platform Make)是一个开源的、跨平台的自动化建构系统,它允许开发者编写一份通用的CMakeList.txt文件来控制编译过程,而不需要修改特定平台下的编译配置,从而实现真正意义上的跨平台编译。CMake支持多种编译器,包括GCC,Clang,Visual Studio等,并且可以生成各种类型的项目文件,如Makefile,Ninja,Visual Studio解决方案等。这使得CMake成为了跨平台C/C++项目的首选构建工具。黄强老师拥有数十万学员教学经验,专为C/C++新手小白量身打造的跨平台企业级CMake专题课程, 从零开始由浅入深帮助大家全面的学习CMake工具,掌握跨平台企业级C/C++项目的CMake构建!你将获得以下内容:掌握CMake 使用 Visual Studio   Unix Make    Ninja   等构建C/C++项目熟练使用CMake构建Windows下C/C++ 应用程序、静态库、动态库项目熟练使用CMake构建Linux下C/C++ 应用程序、静态库、动态库项目熟练掌握CMake脚本的语法特性、CMakeLists.txt文件的编写规则熟练掌握CMake的变量、命令、函数、宏、策略、生成器表达式、模块等熟练掌握CMake包的创建、目标的导出、生成导出文件、配置文件等掌握使用CMake编译第三方的开源包与库项目黄强老师精心打磨、诚意之作,只为你更轻松的掌握CMake企业级跨平台构建!适用人群:有一定C、C++基础的开发者,想掌握CMake的高级使用!
```cmake #newlib库的裁剪链接 function(add_library_extract_lib_objects target_name source_lib include_object_files exclude_object_files) # 临时工作目录,用于解压和操作目标文件 set(tmp_output_dir ${CMAKE_EXTRACT_LIB_DIR}/ar_extract_objects_tmp/${target_name}) # 最终输出目录,存放生成的新库文件 set(target_output_dir ${CMAKE_EXTRACT_LIB_DIR}/ar_extract_objects_libs/${target_name}) # 新生成的库文件名(格式为lib[target_name].a) set(target_file lib${target_name}.a) set(ar_flags qc) file(MAKE_DIRECTORY ${target_output_dir}) file(MAKE_DIRECTORY ${tmp_output_dir}) set(${target_name}_dependency_list ${source_lib}) add_custom_target(${target_name}_ar_tmp_source ALL COMMAND ${CMAKE_AR} xo "${source_lib}" WORKING_DIRECTORY ${tmp_output_dir}) list(APPEND ${target_name}_dependency_list ${target_name}_ar_tmp_source) list(LENGTH exclude_object_files exclude_object_files_length) if(${exclude_object_files_length} GREATER 0) add_custom_target(${target_name}_exclude_target ALL DEPENDS ${target_name}_ar_tmp_source COMMAND rm -f ${exclude_object_files} WORKING_DIRECTORY ${tmp_output_dir} ) list(APPEND ${target_name}_dependency_list ${target_name}_exclude_target) endif() list(LENGTH include_object_files include_object_files_length) if(${include_object_files_length} GREATER 0) add_custom_target(${target_name}_include_target ALL DEPENDS ${target_name}_ar_tmp_source COMMAND mkdir -p include COMMAND mv ${include_object_files} include/ COMMAND rm -f *.o COMMAND mv include/* . WORKING_DIRECTORY ${tmp_output_dir} ) list(APPEND ${target_name}_dependency_list ${target_name}_include_target) endif() add_custom_command(OUTPUT ${target_output_dir}/${target_file} DEPENDS ${${target_name}_dependency_list} COMMAND rm -f ${target_output_dir}/${target_file} COMMAND ${CMAKE_AR} ${ar_flags} ${target_output_dir}/${target_file} ${tmp_output_dir}/*.o COMMAND rm -f ${tmp_output_dir}/*.o WORKING_DIRECTORY ${target_output_dir} ) add_custom_target(CUSTOM_${target_name} ALL DEPENDS ${target_output_dir}/${target_file}) set_target_properties(CUSTOM_${target_name} PROPERTIES TARGET_FILE ${target_output_dir}/${target_file}) add_library(${target_name} STATIC IMPORTED GLOBAL) set_target_properties(${target_name} PROPERTIES IMPORTED_LOCATION ${target_output_dir}/${target_file} ) add_dependencies(${target_name} CUSTOM_${target_name}) endfunction() 将以上代码添加注释 ```
08-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值