首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在非子目录下使用带有CMake的add_dependency?

在非子目录下使用带有CMake的add_dependency可以通过以下步骤实现:

  1. 确保你的项目结构中包含一个顶层的CMakeLists.txt文件和多个子目录,其中每个子目录都有自己的CMakeLists.txt文件。
  2. 在顶层的CMakeLists.txt文件中,使用add_subdirectory命令将每个子目录添加到项目中。例如,如果你的子目录名为"subdir",则可以添加以下代码:add_subdirectory(subdir)
  3. 在子目录的CMakeLists.txt文件中,使用add_library或add_executable命令定义你的目标,并使用target_link_libraries命令添加所需的依赖项。例如,如果你的目标名为"my_target",并且你需要依赖"dependency_target",则可以添加以下代码:add_library(my_target ...) target_link_libraries(my_target dependency_target)
  4. 在顶层的CMakeLists.txt文件中,使用add_dependencies命令将子目录中的目标添加为顶层目标的依赖项。例如,如果你的顶层目标名为"top_target",并且你的子目录目标名为"my_target",则可以添加以下代码:add_dependencies(top_target my_target)

通过以上步骤,你可以在非子目录下使用带有CMake的add_dependency。这样做的好处是可以将依赖项的管理分散到各个子目录中,使项目结构更清晰,并且可以更方便地添加和修改依赖项。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用Android Studio编译BareSIP

我们可以在项目中直接引入BareSIP库,也可以将BareSIP源代码引入到项目中,目前BareSIP还不是很稳定,因此,使用后者方式方便我们对BareSIP进行二次开发以及修改问题。...下文会一步一步讲述如何在Android Studio中使用CMake编译BareSIP。...新建项目 首先,在Android Studio中新建带有Native C++项目,这样创建完成后,IDE会自动生成原生代码Demo和一个简单JNI框架。...构建脚本) 先在根目录下CMakeLists.txt引入子目录 cmake_minimum_required(VERSION 3.4.1) add_subdirectory(openssl) add_subdirectory...,而baresiplib是我们提供给上层APP在运行时使用接口模块,因此要编译成动态库,且链接上述编译几个静态库 cmake_minimum_required(VERSION 3.4.1) include_directories

1.6K10

FFmpeg开发笔记(九)Linux交叉编译Androidx265库

​《FFmpeg开发实战:从零基础到短视频上线》一书“12.1.2 交叉编译Android需要so库”介绍了如何在Windows环境交叉编译Android所需FFmpegso库,前文又介绍了如何在...Linux环境交叉编译Android所需FFmpegso库,接下来介绍如何在Linux环境交叉编译Android所需x265so库。...1、安装cmake 执行以下命令安装cmake yum install cmake git 2、下载Linux版本android-ndk-r21e(已下载则忽略) 登录Linux服务器(比如华为云欧拉系统...x265_3.5/build/aarch64-linux目录下crosscompile.cmake,把下面两行 set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)...usr/local/app_ffmpeg/include)整个复制到App工程src/main/cpp目录下

58010
  • Windows下使用VS2019和CMake 3.18.3编译使用yaml-cpp库

    3、使用VS2019和CMake3.18.3编译yaml-cpp 首先确保已经在自己系统下安装了VS2019和CMake系统是Windows7、VS2019、CMake 3.18.3,可以根据需要选择...我在Windows7系统下使用VS2019和CMake 3.18.3编译yaml-cpp命令为: cmake .....3.1、使用VS2019编译Win32 Debug模式yaml-cppd.lib库 选择需要编译平台和模式,Win32/Win64以及Debug/Release 上面选择了Debug以及Win32...这个yaml-cppd.lib就是我们使用VS2019项编译出来基于Win32平台Debug静态库,在使用VS2019开发yaml-cpp项目中需要引入这个lib库 3.2、使用VS2019编译...关于在Windows7下使用VS2019编译Win64位Debug库和Release库方法也是类似的,对应CMake编译命令为: cmake ..

    3.8K20

    云课五分钟-03第一个开源游戏复现-贪吃蛇

    进入源代码目录,查找是否有编译脚本(Makefile或CMakeLists.txt)。如果有,您可以使用相应构建工具(make或cmake)进行编译。...CMake是一个跨平台构建工具,可以自动生成特定平台构建脚本,Makefile或Visual Studio项目文件等,从而方便用户在不同操作系统和开发环境中使用统一方式进行构建。...CMakeLists.txt文件通常位于项目的根目录下,它使用CMake自定义一种简单语言来描述构建过程,并指定项目的源代码文件、依赖库、可执行程序等。...list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sdl2) 这一行将当前目录下cmake/sdl2目录添加到CMAKE_MODULE_PATH...file(GLOB SRC src/*.c) 使用GLOB函数将src目录下所有.c源文件存储到SRC变量中。

    32830

    【Android NDK 开发】CMake 中查找链接 Android 自带动态库位置说明 ( ndk-bundleplatformsandroid-29arch-armusrlib )

    CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 ) 博客中 CMake 配置 ndk 代码 , 其中 使用了 find_library...\android-29\arch-arm\usr\lib 目录下动态库 , 就是 android-29 版本中 arm 32 位架构体系 对应动态库 ; Android 系统中 , 只提供了 34...个动态库 , 引用时 liblog.so 其名称是 log , 在 CMake 配置中 , 使用 log 名称即可 ; 二、CMakeLists.txt 完整带注释配置 ---- # 指定 CMake...} 是本 CMakeList.txt 构建脚本路径 , 是 CMake 工具内置变量 # Android CMake 也内置了一些变量 , ANDROID_ABI.../jniLibs/armeabi-v7a") # 链接函数库 # 参数 1 : 本构建脚本要生成动态库 标 # 参数 2 ~ ... : 后面是之前预编译动态库或静态库

    1.2K10

    【聆思CSK6 LNN工具体验】快速部署手势识别

    前段时间收到了搭载安谋科技STAR-MC1聆思CSK6 AI开发套件,今天和我一起体验一下如何在这个套件上部署一个手势识别应用。正式开始前先简单看一下这套开发套件什么样子。...基于Win11开发环境搭建 在正式开始前,还需要简单说明一下我这里环境: Win11 git cmake 官方提供了一键安装包 文件大小:1.8G 双击进行安装 修改默认安装路径,不要安装在有中文和特殊字符目录...体验官方手势检测项目 我们使用是app_algo_fd_sample_for_csk6项 FD ,指的是 FACE-Detect ,即人脸检测,该算法能力涵盖人脸识别流程,计算人脸边界框、人脸标定点...zep update 构建项目 lisa zep build -b csk6011a_nano 如果看到上面的报错,则需要配置Zephyr SDK 大小:992MB 下载后需要解压,建议放到一个空间比较大录下...使用图像查看和调试 资源下载 cd .. git clone https://cloud.listenai.com/zephyr/applications/csk_view_finder_spd.git

    27610

    推荐一款嵌入式Linux开源框架与封装-cpp-tbox

    该模式避免了多线程模式竞态加锁烦恼,程序稳定可靠。 2. 内含main框架,开箱即用 使用内置 main 框架处理了所有与业务无关工作。...) 输出到系统日志; • filelog,将日志写入到指定目录下,以格式:前缀.年月日_时分秒.进程号.log 文件中。...2) 根据日志等级渲染不同颜色,一了然,内容详尽 日志内容包含了:等级、时间(精确到微秒)、线程号、模块名、函数名、正文、文件名、行号。 方便快速定位问题。.../usr/local): cmake -B build -DCMAKE_INSTALL_PREFIX=$HOME/.tbox 使用教程 关于如何使用 cpp-tbox 开发自己程序,详见教程: cpp-tbox-tutorials...[6] 使用find_package例子: cmake_minimum_required(VERSION 3.10) project(tbox-find_package) find_package(tbox

    37710

    Windows10中使用VS2022和Cmake编译构建C++开源日志库-spdlog

    具体可以参考github上面的示例:https://github.com/gabime/spdlog 另外spdlog支持两种使用方式:一种是将源代码目录下include头文件直接添加到自己项目中使用...下载完spdlog-1.x.zip之后,将其解压到自己电脑某个目录下,比如:D:\env目录 2、使用Cmake编译spdlog源代码 首先确保自己电脑上已经安装了Cmake,我安装Cmake版本是...1.x\build目录下,找到spdlog.sln工程文件,直接使用VS2022打开也可以,效果是等价。...位spdlog.lib静态库,如下图所示: 编译生成出了spdlogd.lib和spdlog.lib库之后,我们可以将includ头文件和库文件放在某个目录下,供自己创建spdlog项目中使用...spdlog项目 打开VS2022,新疆一个基于VC++控制台项目 为该项目添加spdlog头文件和lib库文件,由于是Debug x64项,所以需要选择对应spdlogd.lib库,如下所示

    2.9K70

    Windows 下编译 OpenCV 和 OpenCV-contrib

    导言 在本文中,我们将介绍如何在 Windows 系统下编译 OpenCV 和 OpenCV-contrib。OpenCV 是一个开源计算机视觉库,它包含了许多图像处理和计算机视觉功能。...环境准备 在编译源码前,需要准备以下源码及环境, OpenCV 源码 OpenCV-contrib 源码 Visual Studio 环境 CMake 环境 下面,将首先讲解如何获取编译源码所需环境...,build 用来存放编译后文件 环境获取 编译源码需要 CMake 环境,CMake 链接下载如下: https://cmake.org/download/ 注意下载对应操作系统 CMake。...Generate 点击 Generate 生成代码,在我 build 目录下 生成项目 生成项目在 build 目录下,点击 OpenCV.sln,使用 Visual Studio 打开 选择...生成成功即可: 总结 本文介绍了如何在 Windows 系统下编译 OpenCV 和 OpenCV-contrib。

    1.2K60

    Cmake学习总结(二)

    一、用好 Cmake,高兴一整天(甚至...): 1、多个源文件,使用命令 aux_source_directory(dir var): 在上一篇文章最后结尾时候,有一个问题,就是在同一目录下面,有多个源文件时候...,在cmake里面可以使用aux_source_directory(dir var)就可以搞定上面效率低问题,接下来我们在CMakeLists.txt这样操作: cmake_minimum_required...不过这方法也有他缺点,就是把当前目录下源文件都添加到变量SRC_LIST,如果我们不需要一些没有用文件(只要拿到所需源文件就行),可以进行这样操作: cmake_minimum_required...,所以在cmake里面有这样规则,可以把相同类型以及相关源文件放到同一个目录,比如说,现在我在test目录下创建test1和test2两个目录文件,并同时把test1.c、test1.h、test2...其实在实际开发工程中,一般会把源文件放到src目录下,把头文件放入到include文件下,生成对象文件放入到build目录下,最终输出elf文件会放到bin目录下,这样让人看起来一了然,哈哈,更多详细情况可以看下期分解

    27110

    SLAM——Linux操作学习

    SLAM之Linux操作学习 编写一个简单HelloSLAM程序 1、使用g++编译器进行编译 2、使用CMake进行编译 3、连接到库 编写一个简单HelloSLAM程序 1、使用g++编译器进行编译...2、使用CMake进行编译 仍然以上面helloSLAM.cpp为例,这次我们不是直接使用g++,而是用cmake来制作一个工程,然后编译它,并在其目录下新建一个CMakeLists.txt文件,内容如下...: 先在ch2目录下创建一个CMakeLists.txt文本文件 #声明要求cmake最低版本 cmake_minimum_required(VERSION 2.8) #声明一个cmake工程 project...文件然后进build文件进行cmake是生成文件不会与源文件之类搞混淆,使用一下命令,否则使用cmake .): mkdir build cd build cmake ....... make 总结: 1、程序代码由头文件和源文件组成 2、带有main函数源文件编译成可执行文件,其他编译成库文件。

    79120

    分享一个适合【团队】开发cmake【跨平台】工程模板

    之前分享过一篇关于 cmake 入门文章:《使用 cmake 来搭建跨平台应用程序框架:C语言版本》,那篇文章重点是描述如何利用 cmake 来编译或者构建跨平台工程,并没有涉及到团队协作开发方面的内容...本文详细描述了文件结构和操作流程,如何在Linux系统使用命令行来编译,如何在Windows系统中使用VSCode 和Visual Studio 2019来进行开发和编译。...使用这个cmake模板之后,代码结构非常清晰,编译过程中产生中间文件也不会污染源代码。 无论是开发一些个人项目,或者是在一些小团队中使用是绰绰有余了。...编译可执行文件 $ cd demo_cmake\myapp $ mkdir build $ cd build $ cmake .. $ make 查看install目录下输出结果: demo_cmake...因为demo_cmake录下存在一个顶层CMakeLists.txt文件,所以VSCode侦测到之后会自动进行cmake配置,同时会创建目录build来存放所有的中间文件。

    2.1K10

    【从零学习OpenCV】4Ubuntu系统中安装OpenCV 4

    Ubuntu系统中安装OpenCV 4 前面我们已经介绍了如何在Windows系统中安装OpenCV 4。...虽然本书中程序代码主要在Windows运行,但是相信有一些读者使用Ubuntu系统进行计算机视觉学习,因此本小节将介绍如何在Ubuntu系统中安装OpenCV 4.1。...对于Ubuntu版本介绍这里不做过多说明,感兴趣读者可以自行查询相关内容,笔者使用是Ubuntu 16.04,因此将会介绍如何在该系统中安装OpenCV 4.1。...不过这些依赖是针对某些特定功能,即使某些功能依赖项没有安装,也不会影响OpenCV 4.1编译与使用,只是在使用特定功能时会出现问题。...待安装路径可以根据个人喜好自由设置,为了安装方便,笔者将OpenCV 4.1解压在根目录下,并命名为“opencv4.1”。

    2.2K30

    CMake】Android Studio 中使用 CMake 编译单个 C++ 源文件 ( 常用 CMake 命令解析 )

    命令设置最小 CMake 版本 ---- 指定 CMake 最低版本 : 使用 cmake_minimum_required 命令 , 指定编译 C/C++ 源码 CMake 工具最低版本 , 这里会自动生成...可以链接多个函数库, 使用 Android NDK 函数库, 预编译第三方函数库, 系统库等....链接函数库命令参数说明 : 参数 1 : 本构建脚本要生成动态库 标 参数 2 ~ … : 后面是之前预编译动态库或静态库 , 或引入动态库 # 指定 CMake 应该连接到目标函数库若干函数库.... # 可以链接多个函数库, 使用 Android NDK 函数库, 预编译第三方函数库, 系统库等. # 链接函数库 # 参数 1 : 本构建脚本要生成动态库 标 #...log-lib # 指定 CMake 想要定位 NDK 库名称 log ) # 指定 CMake 应该连接到目标函数库若干函数库. # 可以链接多个函数库, 使用

    4.3K00

    CMake教程】(五)CMake 配置install打包

    本片教程我们将讲述如何在cmake中配置install打包路径。下面我们将以mathlib库和头文件为例子进行配置。...(2)CMake 使用环境和安装 本教程使用环境为: ubutu18.04 lts gcc version 7.5.0 g++ version 7.5.0 cmake version 3.10.2...安装cmake: sudo apt install cmake (3)设置设置我们程序输出为lib文件   配置库文件、头文件和执行文件到install录下cmakeinstall根目录为CMAKE_INSTALL_PREFIX...变量路径,如果我们要设置配置路径可以使用set命令设置CMAKE_INSTALL_PREFIX变量值来改变路径。...,文件路径更清楚,一般会在项目的root目录下建立一个文件夹,用于存储CMake生成中间文件。

    9.1K21

    Cmake学习总结(三)

    大家好,在上一篇文Cmake文章里面,我们同样在文章最后面留了一个问题实现,就是把源文件放到src目录下,把头文件放到include目录下去,这样也比较符合别人和自己日后去配置工程(一看到这两个就能知道啥意思了...目录下存放了源文件,当执行cmake时,就会进入src目录下去找src目录下CMakeLists.txt,所以在src目录下也建立一个CMakeLists.txt),官方用法是这样(不过这里暂时没去深究...set_target_properties: 设置输出名称,还有其它功能,设置库版本号等等。 LIBRARY_OUTPUT_PATH: 库文件默认输出路径,这里设置为工程目录下lib目录。...同时注意: 我们lib下面又动态库和静态库,而在我们src目录下CMakeLists.txt里面的target_link_libraries (main test1)默认是使用动态库,如果lib目录下只有静态库...,现在我们知道了怎么去使用动态库和静态库就好办了;限于篇幅原因,这个测试留在下篇cmake文章里面来做实验看看到底能不能实现(这里我暂时还没做实验,等我做完实验就会分享出来,这篇文章分享花时间比较久,

    49430

    g++,CMake和Makefile了解一下

    下面我带大家学习下CMake基础知识。 3.1 安装CMake 首先我们看看如何在自己linux系统(我系统Ubuntu18.04)下安装CMake。...3.2 CMake编译流程 成功安装好CMake后我们再来说说如何在linux平台下使用CMake生成Makefile并编译流程,如下: 1.编写CMake配置文件CMakeLists.txt,我们可以认为...3.3 使用CMake编译程序 我们通过一个关于opencv读取图片程序,让大家更好理解整个CMake编译过程。...命令 命令语法:aux_source_directory( ) 命令简述:用于将 dir 目录下所有源文件名字保存在变量 variable 中 使用范例:aux_source_directory...lib) 像这样命令还有很多,find_package()寻找使用第三方库等,这些都需要我们平时多加积累。

    1.6K20
    领券