首页 > 其他分享 >编译并行,link串行

编译并行,link串行

时间:2023-12-22 15:58:12浏览次数:41  
标签:可执行文件 编译 add dependencies link 串行 构建 Exec2

在CMake中,如果你有多个可执行文件目标,并且你想要它们在链接时串行构建,你可以使用CMake的add_dependencies命令来创建一个依赖链。这将确保在开始构建一个目标之前,它所依赖的目标已经构建完成。

下面是一个简化的步骤说明,展示了如何设置CMakeLists.txt来实现多个可执行文件的串行链接:

为每个可执行文件定义一个目标。
使用add_dependencies为它们创建一个依赖链。
这里是一个例子:

cmake_minimum_required(VERSION 3.10)
project(SerialLinkExample)

# 定义第一个可执行文件
add_executable(Exec1 source1.cpp)
# 定义第二个可执行文件
add_executable(Exec2 source2.cpp)
# 定义第三个可执行文件
add_executable(Exec3 source3.cpp)

创建依赖链

add_dependencies(Exec2 Exec1)
add_dependencies(Exec3 Exec2)
在这个例子中,Exec2 只有在 Exec1 完成后才会开始构建,Exec3 只有在 Exec2 完成后才会开始构建。这意味着链接是串行的,即使编译可能是并行的。

reference from ChatGPT

标签:可执行文件,编译,add,dependencies,link,串行,构建,Exec2
From: https://www.cnblogs.com/stdpain/p/17921753.html

相关文章

  • 聊聊Flink必知必会(七)
    WhatisState虽然数据流中的许多操作一次只查看一个单独的事件(例如事件解析器),但某些操作会记住多个事件的信息(例如窗口算子)。这些操作称为有状态的(stateful)。有状态操作的一些示例:当应用程序搜索某些事件模式(eventpatterns)时,状态(state)将存储迄今为止遇到的事件序列。......
  • Ubuntu18下实时Linux内核的编译安装记录(保姆级)
    本人系统是虚拟机上的ubuntu18,过程参考了以下3个链接:https://blog.csdn.net/huangjunsheng123/article/details/116202848https://blog.51cto.com/u_15899439/5907513https://kunaly.blog.csdn.net/article/details/101111502?spm=1001.2101.3001.6650.3&utm_medium=distribute......
  • C和汇编混合编译
    有时候在写C语言项目的时候会需要用到汇编代码直接操作寄存器、栈之类更加底层的东西,所以在这里写一下C和汇编混合编程的几种方法(Windows和Linux需要分开讨论)WindowsVisualStudioWindows下常用的开发环境是VisualStudio,对于x86来说vs默认支持内联汇编,直接通过__asm关键词即可......
  • Flutter 编译是pod intsall github 资源下载失败
    在fluterr编译报错然后显示github.xxxxx访问超时处理办法podinstall主要是读取profile文件platform:ios,'9.0'target'YourAppName'douse_frameworks!#这是安装依赖位置pod'SomeDependency'#添加其他依赖项...end想办法下载到github的文......
  • Android安卓打包app应用程序编译shrinkResources true报错解决方案
    Hello各位同学们好,我是咕噜铁蛋!在Android开发中,当我们需要打包应用程序时,经常会遇到一些问题。其中一个常见的问题是在使用shrinkResources设置为true时出现的编译错误。这个选项是在AndroidGradle插件的build.gradle文件中设置的,用于减少最终APK文件的大小。然而,如果设置不正确,可......
  • 聊聊Flink必知必会(六)
    Flink是一个分布式系统,需要有效地分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,如HadoopYARN和Kubernetes,但也可以设置为作为一个独立的集群运行,甚至作为一个库。Flink集群的剖析Flink运行时由两种类型的进程组成:一个JobManager和一个或多个taskma......
  • protobuf、protobuf-c、protobuf-c-rpc在Linux(Ubuntu18.04)编译安装及交叉编译arm\aar
    protobuf、protobuf-c、protobuf-c-rpc在Linux(Ubuntu18.04)编译安装及交叉编译arm\aarch64版本文章目录protobuf、protobuf-c、protobuf-c-rpc在Linux(Ubuntu18.04)编译安装及交叉编译arm\aarch64版本一、前言二、protobuf、rpc、protobuf-c、protobuf-c-rpc介绍1、protobuf2、protob......
  • 记录 | ubuntu源码编译安装/更新boost版本
    一、卸载当前的版本1、查看当前安装的boost版本dpkg-S/usr/include/boost/version.hpp通过上面的命令,你就可以发现boost的版本了,查看结果可能如下:libboost1.54-dev:/usr/include/boost/version.hpp2、删除当前安装的boostsudoapt-getautoremovelibboost1.54-dev这样就可以删......
  • 记录 | ubuntu源码编译安装faiss
    ubuntu源码编译安装faiss#安装依赖aptupdateaptinstallbuild-essentiallibopenblas-devliblapack-devlibopencv-dev#clonegitclonehttps://github.com/facebookresearch/faiss.gitcdfaiss./configuremake-j32makeinstall使用示例:#include<faiss/IndexF......
  • 记录 | ubuntu源码编译ccls
    ubuntu源码编译ccls#clone代码gitclone--depth=1--recursivehttps://github.com/MaskRay/ccls#安装libclang-15sudoapt-getinstallclanglibclang-15-dev#编译cmake-H.-BRelease-DCMAKE_BUILD_TYPE=Release\-DCMAKE_PREFIX_PATH=/usr/lib/llvm-15\......