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

强制CMake在忍者中使用MSVC

CMake是一个跨平台的开源构建工具,用于管理软件构建过程。它使用CMakeLists.txt文件来描述项目的构建规则,并生成适用于不同编译器和操作系统的构建脚本。

忍者(Ninja)是一个快速且轻量级的构建系统,被广泛用于加速大型项目的构建过程。它通过并行构建和优化的算法,提供了比传统构建系统更快的构建速度。

MSVC(Microsoft Visual C++)是微软的C++编译器套件,用于开发Windows平台上的应用程序。它提供了强大的开发工具和调试功能,广泛应用于Windows开发领域。

强制CMake在忍者中使用MSVC意味着我们希望使用CMake来生成适用于MSVC编译器的忍者构建脚本。这样可以充分利用忍者的并行构建和优化算法,加速项目的构建过程,并且能够充分发挥MSVC编译器的功能和特性。

在CMake中强制使用MSVC可以通过设置CMake变量来实现。具体步骤如下:

  1. 在CMakeLists.txt文件中添加以下内容,用于强制使用MSVC编译器:
  2. 在CMakeLists.txt文件中添加以下内容,用于强制使用MSVC编译器:
  3. 这些设置将指定使用x64平台和x64主机工具集,并强制使用Ninja作为构建系统。
  4. 执行CMake命令生成忍者构建脚本:
  5. 执行CMake命令生成忍者构建脚本:
  6. 这将在当前目录下创建一个名为"build"的文件夹,并生成适用于MSVC的忍者构建脚本。
  7. 进入build文件夹,并执行忍者构建命令:
  8. 进入build文件夹,并执行忍者构建命令:
  9. 这将使用忍者构建系统并利用MSVC编译器进行并行构建。

强制CMake在忍者中使用MSVC的优势是可以充分利用忍者的高效构建能力和MSVC编译器的功能,加速项目的构建过程。此外,使用CMake可以提高项目的可移植性,使得项目能够在不同平台和编译器上进行构建。

这个技术在云计算领域的应用场景包括:

  1. 大规模分布式系统的构建和部署:通过使用CMake和忍者,可以快速构建和部署大规模分布式系统,提高系统的可靠性和性能。
  2. 虚拟化和容器化技术的开发和测试:使用CMake和忍者可以方便地构建和测试虚拟化和容器化技术,如Docker、Kubernetes等。
  3. 云原生应用的开发和部署:通过使用CMake和忍者,可以快速构建和部署云原生应用,如微服务架构、容器编排等。

腾讯云提供了一系列与云计算相关的产品,以下是一些推荐的产品和产品介绍链接地址:

  1. 云服务器(CVM):提供弹性计算能力,支持多种操作系统和应用场景。产品介绍链接
  2. 云数据库MySQL版:提供高可用、可扩展的MySQL数据库服务。产品介绍链接
  3. 云原生容器服务(TKE):提供高度可扩展的容器化应用管理平台。产品介绍链接
  4. 人工智能平台(AI Lab):提供丰富的人工智能开发和部署工具,支持深度学习、自然语言处理等任务。产品介绍链接
  5. 物联网套件(IoT Hub):提供全面的物联网解决方案,支持设备管理、数据采集和应用开发。产品介绍链接

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。

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

相关·内容

ProtobufCmake的正确使用

例如,深度学习中常用的ONNX交换模型就是使用.proto编写的。我们可以通过多种前端(MNN、NCNN、TVM的前端)去读取这个.onnx这个模型,但是首先你要安装protobuf。...一般来说,protobuf经常搭配Cmake使用Cmake有官方的modules,可以通过简单的几个命令protobuf_generate_cpp来生成对应的.pb.cc和.pb.h。...mediapipe中使用了大量的ProtoBuf技术来表示图结构,而且mediapipe原生并不是采用cmake来构建项目,而是使用google自家研发的bazel,这个项目构建系统我就不评价了,而现在我需要使用...CLionCmake来编译proto生成的.pb.cc和.pb.h不在原始目录,而是集中cmake-build-debug(release),我们额外需要将其中生成的.pb.cc和.pb.h文件移动到原始地址...正确修改cmake 对于这种情况,比较合适的做法是直接使用命令进行生成。

1.3K20

cmake: 使用jom实现msvc工程并发编译提高速度(-j)

msvc提供的nmake并没有并发编译功能(类似gcc make的-j参数指定并发编译的任务数), 而第三方工具jom(http://wiki.qt.io/Jom)解决了这个问题,jom可以像gcc...编译的使用方法 获取jom 访问jom官网(http://wiki.qt.io/Jom)下载jom 的二进制压缩包解压到本地的文件夹,jom就算是安装好了(jom很小,只有5个文件) cmake 将jom...如果不把jom的路径加到%PATH%,也可以如下通过 定义CMAKE_MAKE_PROGRAM变量来指定jom.exe的位置 gflags_source_folder>cmake -G "NMake...然后就可以如下使用jom编译了, -j参数用于指定并发任务数 gflags_source_folder>jom -j 8 补记: 其实MSVC提供的MSBuild.exe和devenv.exe,也提供了并发编译功能...如果未使用开关,则使用的默认值 为 1。如果使用开关时不带值, MSBuild 将最多使用计算机上的 处理器数。

2.8K80
  • window上使用cmake

    本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/using-msys-make-in-windows/ github上看了很多程序,发现都是用cmake来自动生成...不得不说,cmake的功能很强大,不仅可以生成make的配置文件,还可以生成VS、eclipse的工程文件。但是我使用时总是碰到很多错误,首先就是cl找不到,用图形化工具时也是找不到。...如果正确地使用cmake?...首先,确保自己的系统存在cmake可以识别的编译工具,但是,这个编译工具属于半自动识别,命令行下你需要使用 -G 参数来选择Generator,只有选对正确地Generator,才可以识别到你的工具链...首先使用MinGW下载MSYS的make工具,然后添加进系统路径,确保命令行下make可以正常运行 下载cmake,这个可以网络搜索下载,注意添加进系统路径 工程的根目录下新建 build文件夹,进入这个文件夹

    1.4K10

    cmake设置msvc的运行库(runtime library)塈指定openjpeg使用静态库

    原本,我以为可以CMAKE的手册中找到一个command或PROPERTY或VARIABLE,简单的调用或设置一下就可以了,很遗憾,把整个CMAKE manual翻了几遍也没找到,没捷径,只能写代码实现...下面是libjpeg_turbo的CMakeLists.txt的代码片段,这段代码对于MSVC工程强制所有target的所有build类型(DEBUG/RELEASE/MINSIZEREL/RELWITHDEBINFO...)使用C静态库。...#判断编译器类型 if(MSVC) #添加一个名为WITH_CRT_DLL的开关选项, #这样就可以cmake-gui或在命令行随时修改该开关选项。...因为我的项目代码是C++写的,所以自己的CMakeLists.txt要使用这段代码,还要加上对C++编译选项的修改 if(MSVC) # Use the static C library

    2.4K10

    cmake:msvc分别对不同的target使用不同的运行库选项(MT或MD)

    https://blog.csdn.net/10km/article/details/79973750 很久以前写过一篇关于cmake下为msvc设置/MT的文章: cmake:msvc...编译第三方库时使用/MT静态库连接c/c++ runtime library 当时是为了解决用msvc编译时使用/MT连接static c library的问题。...CMakeLists.txt添加如下的代码,即可以将所有默认的C,CXX编译选项的/MD替换成/MT. if(MSVC) # Use the static C library for...但如果希望针对CMakeLists.txt的不同target使用不同的/MT或/MD选项,这个办法就不行了。如果希望针对特定的target设置/MT选项,该怎么办呢?...endfunction() 有了这个with_mt_if_msvc函数,你可以针对target设置/MT选项,而那些没有指定的target仍使用默认的/MD选项 参考资料 Is it possible,

    2.2K20

    cmake:msvc编译第三方库时使用MT静态库连接cc++ runtime library

    关于cmake生成msvc工程时静态链接c/c++运行库的问题,很久以前写过一篇博客《cmake设置msvc的运行库(runtime library)塈指定openjpeg使用静态库》。...当时的办法是CMakeLists.txt中加一段代码将C_FLAGS_XXX,CXX_FLAGS_XXX等所有变量的/MD替换成/MT ,就这样解决了问题。...,才完全解决了我的问题: msvc默认就是使用/MD选项,cmake,这个/MD是初始化时就被设置的。...如下定义一个名为 compiler_flags_overrides.cmake的脚本,脚本中将_INIT后缀的所有编译器初始化变量的/MD统统改为/MT, if(MSVC) # Use...) 然后调用cmake生成msvc工程的时候用CMAKE_USER_MAKE_RULES_OVERRIDE指定前面compiler_flags_overrides.cmake脚本的位置,就可以实现/MD

    3.6K70

    CGAL的编译以及VS使用

    CGAL的编译以及VS使用 在被CGAL长久的折磨了两三周 在学习过程中有好几次库都出现了问题 所以打算重新更换一下版本 CGAL可以说是学习这么久以来见过最离谱(ex)的环境配置,期间出了好几次问题...找到Qt PATH = D:\local\Qt\Qt5.13.1\5.13.1\msvc2017_64\bin vs安装Qt插件 打开vs 找到工具的插件及其更新 找到Qt的拓展 安装Qt Visual...Studio Tools 安装重启后 会在工具栏看到Qt VS Tools选项 工具栏打开Qt VS Tools–>Qt Options–>Add 添加msvc_2017_64 = D:\local...… 打开CMake界面后(一个非常变态的东西出现了) where is the source code输入:D:\local\CGAL-4.13.2\examples\Triangulation_...中使用CGAL库 CMake build 如图继续进行Configue和Generate操作 然后检查一下CGAL文件夹目录是否有build文件夹 接下来打开生成的CGAL.sln文件 debug

    57020

    零基础小白使用GPU云服务器(以Windows系统为例)搭建自己的深度学习环境

    如果对Linux比较熟悉可以选择Ubuntu或者Centos,不同于Windows系统需要自己配置各种深度学习所需的环境,Linux系统可以市场镜像里面直接选择各种已配置好的免费镜像,可以直接使用,免去了安装的烦恼...-1.2.03.5-3.6MSVC 2015 update 3Cmake v3.6.3tensorflow-1.1.03.5MSVC 2015 update 3Cmake v3.6.3tensorflow...-1.1.03.5MSVC 2015 update 3Cmake v3.6.35.18tensorflow_gpu-1.0.03.5MSVC 2015 update 3Cmake v3.6.35.18...三、安装过程介绍 3.1 显卡驱动安装 前往英伟达官网:Official Drivers | NVIDIA 选择该显卡的驱动版本,CUDA Toolkit的下拉菜单,我们可以看到该显卡所支持的所有驱动版本...窗口中输入nvidia-smi,显示下图内容说明显卡驱动安装成功(下图为正在运行的GPU,GPU运行时,cmd窗口输入该命令可查看GPU的使用情况)。

    10.5K40

    Caffe: Could not find PROTOBUF Compiler(Profobuf 3.0 above)

    在用cmake生成Caffe工程文件的时候,如果你使用Protobuf 3.0以上的版本,cmake可能会产生如下的报错: CMake Error at cmake/ProtoBuf.cmake:18...-Dprotobuf_MODULE_COMPATIBLE=on 这个办法的好处是不用修改caffe的代码 修改CMakeLists.txt 也可以直接修改Caffe根目录下的CMakeLists.txt...compatible with the module mode" ON IF MSVC) 如果有,直接把后面的 IF MSVC删除,强制将protobuf_MODULE_COMPATIBLE 置为ON...}/protobuf-module.cmake") endif() 延伸阅读 : Imported Target 那么你也许会问,如果不设置protobuf_MODULE_COMPATIBLE=on要如何使用...target时,会自动把imported target的INTERFACE_INCLUDE_DIRECTORIES 属性指定的include文件夹加到your_target的include文件夹列表

    4.7K60

    Cmakewindows支持预编译头文件(stdafx.h)

    最近一直研究cmake构建项目,之前接触cmake的时候就感觉不太喜欢cmake,觉得它太乱了,产生了太多的中间文件,产生的项目文件也不是特别友好,windows下,生成的项目文件经常需要修改...不够经过这段时间系统的研究,觉得cmake还是非常强大的,吃透之后它的确非常方便,比手工写makefile要简单的多,因此linux使用cmake我觉得是非常合适的,不过windows则相对要差一些...本文主要讲下在windows下使用cmake给项目添加预编译头文件功能,做过windows项目的同学都知道,windows下使用预编译头文件非常普遍,能加快编译速度,一些头文件交叉引用问题也能使用它来解决...)则需要传完整路径,即在VS项目文件(.vcxproj)能访问的正确路径,可以是相对路径,也可以绝对路径。      ...定义的宏 USE_MSVC_PCH(Proxy stdafx.h ${STDAFX_PCH_C}) endif ()       好了,使用上面的方法就可以给vs的工程添加预编译头文件的支持了。

    1.8K31

    Cmakewindows支持预编译头文件(stdafx.h)

    最近一直研究cmake构建项目,之前接触cmake的时候就感觉不太喜欢cmake,觉得它太乱了,产生了太多的中间文件,产生的项目文件也不是特别友好,windows下,生成的项目文件经常需要修改...不够经过这段时间系统的研究,觉得cmake还是非常强大的,吃透之后它的确非常方便,比手工写makefile要简单的多,因此linux使用cmake我觉得是非常合适的,不过windows则相对要差一些...本文主要讲下在windows下使用cmake给项目添加预编译头文件功能,做过windows项目的同学都知道,windows下使用预编译头文件非常普遍,能加快编译速度,一些头文件交叉引用问题也能使用它来解决...)则需要传完整路径,即在VS项目文件(.vcxproj)能访问的正确路径,可以是相对路径,也可以绝对路径。      ...定义的宏 USE_MSVC_PCH(Proxy stdafx.h ${STDAFX_PCH_C}) endif () 好了,使用上面的方法就可以给vs的工程添加预编译头文件的支持了。

    2.7K50

    OpenBLAS:改进OpenBLASConfig.cmake生成方式,解除cmake脚本的路径依赖

    OpenBLAS过程记录》 如果你编译OpenBLAS只是本机使用,那没啥问题,如果想把这个编译好的OpenBLAS 移到别的位置或提供给别人使用,并且也是用cmake编译项目。...那么问题就来了,因为OpenBLASConfig.cmake的路径依赖问题,导致cmake脚本调用find_package( OpenBLAS NO_MODULE )返回的OpenBLAS_LIBRARIES...上面Windows下生成的OpenBLASConfig.cmakeOpenBLAS_LIBRARIES的值居然是.dll的路径。...如果你是用手工Visual Studio创建工程并设置工程参数,那么这都不是问题,对你没有任何影响,但如果你像我一样,用cmake进行工程编译,这是个很要命的问题,因为cmake根据这些错误的信息无法生成正确的...的代码清晰的对应着OpenBLASConfig.cmake的三行代码,由此我们理解为什么OpenBLASConfig.cmake的路径都是绝对路径,而且windows下OpenBLAS_LIBRARIES

    3.1K70

    系列文章(一)|VS2013-Qt5.5.1-动态编译-VTK7.0.0

    本文把Qt加入了环境变量,即path = D:\Qt\5.5.1\5.5\msvc2013_64\bin; 总之,CMake会自动电脑中搜索并设置很多东西,如果你想引导CMake的自动搜索,最好的办法就是添加环境变量...2.VTK_Group_Qt 选中,使用Qt. ? 3.CMAKE_INSTALL_PREFIX 修改为D:/VTK/ 7.0.0/msvc2013_64 ?...[lib]文件夹,有个CMake文件夹,D/R版本的内容完全一样. 除了VTKTargets-debug.CMake和VTKTargets-release.CMake....文件,D/R版本的内容完全一样. install复制内容时,如果检测到同名且内容一样的文件,直接跳过,不复制; 检测到同名但内容不一样的文件,覆盖; 未检测到同名文件,复制. install不会复制...所以如果真的需要使用pdb,仅仅复制那109个dll对应的pdb到安装目录的[bin]即可. ?

    2.1K20

    近期cmake-toolset的一些适配问题

    那么先来记录一下构建系统适配过程的一些问题吧。 增加 boringssl 支持,升级 openssl 到 3.0.0 之前 gRPC 的依赖使用的是 openssl 。...我的测试 Clang 6.0 版本(对应AppleClang 版本10.0)带的 libc++ 才开始能够正常使用这个接口。所以在这些老的编译器下需要降级到 v3.13.0 。...GCC/Clang STL BUG 适配 gRPC 的过程,我还碰到了一个GCC和Clang的BUG。...因为有些包会链接 -framework CoreFoundation xcode环境不设置 SYSROOT 是找不到的。...目前 cmake-toolset 里也有一份这个Patch。 总结 近期对 cmake-toolset 的改造主要就上面这些了。对一些依赖库的升级过程,碰到的不是特别典型的问题我就不一一列举了。

    88140

    《世嘉新人培训教材—游戏开发》2DGraphics1项目cmake构建

    但是该样例是基于VS进行编写构建的,而本人日常喜欢CLion进行C/C++开发,于是准备使用cmake重新组织该书籍的样例项目:2DGraphics1的NimotsuKunBox和drawPixels...使用VS构建样例项目静态库 GameLib下,本书的译者已经帮我们编写了一个基本的指南: 编译顺序 系统环境变量添加 GAME_LIB_DIR 值为源码工程的根目录 注意要重启visual...使用cmake搭建2DGraphics1项目 经过前戏后,我们终于编译出了2DGraphics1所需要的GameLib_d.lib静态库以及相关的头文件,并且,我们还构建了2DGraphics1样例解决方案的...该问题原因在于CLion的文件是默认使用的UTF-8编码,而msvc不指定的情况默认以当前代码页(936)编码方式读取文件(代码页936(Codepage 936)是Microsoft的简体中文字符集标准...CMake想要给msvc指定文件编码方式,需要在CMakeLists.txt配置如下内容: ... ...

    46140
    领券