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

Protobuf在Cmake中的正确使用

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

1.7K20

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.9K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在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.5K10

    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.5K10

    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.4K20

    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.8K70

    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

    64420

    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

    Cmake在windows支持预编译头文件(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

    零基础小白使用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的使用情况)。

    11.6K41

    系列文章(一)|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

    毛毛虫「忍者」:AI在《我的世界》中建城堡、公寓楼,还玩起了影分身

    近日,哥本哈根信息技术大学等机构的研究者创建了一个神经网络系统,不仅可以在《我的世界》里建城堡、公寓楼、大树等复杂实体,还玩起了影分身。...他们可以在游戏里举办毕业典礼、组建虚拟机玩 Doom 游戏,更有硬核学者在游戏里搭建神经网络,真是花样百出。 与此同时,人类已经不满足于自己玩游戏了,他们还想要人工智能(AI)在《我的世界》大展身手。...最近,哥本哈根信息技术大学、纽约大学和上海大学的研究者受到《生命游戏》中元胞自动机理论的启发,创建了一个使用 3D 神经元胞自动机(Neural Cellular Automata, NCA)的系统,并将该系统部署在了...为了提高 NCA 在真实世界应用的泛化能力,研究者在 Mordvintsev 等人(2020)研究的基础上进行了扩展,以促进三维复杂结构的生成。...结果表明,在大多数情况下,NCA 可有效的扩展到 3D,能够从单个 cell 中生成复杂的实体。NCA 也拥有与 2D 版本相同的「再生」特性。

    29420

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

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

    3.2K70

    近期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 的改造主要就上面这些了。对一些依赖库的升级过程中,碰到的不是特别典型的问题我就不一一列举了。

    94840

    Cmake在windows支持预编译头文件(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
    领券