cmake指定编译器以及32位、64位版本

2023-11-14

概述

  • 本文演示环境: win10 + VS2017

1.指定变量值

咱们常用命令【cmake ..】在build目录下配置生成项目和解决方案。 其实,这个命令还有其他用法。
指定CMakeLists.txt中的变量值。比如 , fmt 库 的CMakeLists.txt中有一个变量 【BUILD_SHARED_LIBS】,可以在命令行指定其值:

复制cmake -DBUILD_SHARED_LIBS=TRUE ..

对比可知,多了中间指定变量的命令, 其他没有变化。

2.指定编译器版本

使用命令: cmake -G 可知当前cmake支持的编译器

复制 1   Visual Studio 16 2019        = Generates Visual Studio 2019 project files.
 2                                  Use -A option to specify architecture.
 3   Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
 4                                  Optional [arch] can be "Win64" or "ARM".
 5   Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
 6                                  Optional [arch] can be "Win64" or "ARM".
 7   Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
 8                                  Optional [arch] can be "Win64" or "ARM".
 9   Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
10                                  Optional [arch] can be "Win64" or "ARM".
11   Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
12                                  Optional [arch] can be "Win64" or "IA64".
13   Visual Studio 9 2008 [arch]  = Generates Visual Studio 2008 project files.
14                                  Optional [arch] can be "Win64" or "IA64".
复制命令行,需要给cmake 传递参数 -G   指定编译器的一个例子如下,这里,指定VS2017为例
复制cmake -G "Visual Studio 15 2017 " ..

该命令将默认生成32位程序
  注意: 【..】前面有空格
-【扩展】
  Linux或者Unix,我经常使用Clang(++) 构建我的程序,通常会在CMakeLists.txt文件最前面project 添加下面的两行,且一定要放在project之前

复制SET(CMAKE_C_COMPILER /usr/bin/clang)
SET(CMAKE_CXX_COMPILER /usr/bin/clang++) 

3.指定指定生成64位的配置命令

上面显示Vs的版本已经说明了参数格式: Visual Studio 9 2008 [arch] 。 这里的 [arch] 就是需要指定的平台目标。
  一个例子帮你理解, 还是以VS2017为例,命令如下:

复制cmake -G "Visual Studio 15 2017  Win64" ..

对比 【2】中的命令多了 【Win64】

4.指定目录下的CMakeLists.txt

习惯上,我更喜欢在和top目录下新建build 目录, 将输出的文件放到这里。【cmake ..】 命令中的【..】其实就是指定 top目录下的CMakeLists.txt文件。
原型:

复制cmake to/path/cmake_lists_txt_dir   

其中【 to/path/cmake_lists_txt_dir 】则指向的是CMakeLists.txt所在目录。

Linux下:

export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
cmake path/to/your/source

windows: mingw

cmake.exe -G "MinGW Makefiles" .



 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake指定编译器以及32位、64位版本 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 静态只读字符串数组

    我在我的 Web 应用程序中使用静态只读字符串数组 基本上数组有错误代码 我将所有类似的错误代码保存在一个数组中并检查该数组 而不是检查不同常量字符串中的每个错误代码 like public static readonly string m
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 使用 LINQ to SQL 时避免连接超时的最佳实践

    我需要知道在 net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳实践 特别是在返回时IQueryable
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

    我有以下使用 OpenMP 的 C C 代码 int nProcessors omp get max threads if argv 4 NULL printf argv 4 s n argv 4 nProcessors atoi argv
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy

随机推荐

  • Open3D 最小二乘拟合二维圆

    目录 一 算法原理 二 代码实现 三 结果展示 一 算法原理 见 Open3D 最小二乘拟合二维圆 python详细过程版 二 代码实现 import open3d as o3d import numpy as np import matp
  • FBX SDK下载安装教程

    目录 FBX SDK介绍 FBX SDK下载安装 FBX SDK介绍 Fbx 是 Autodesk MotionBuilder 固有的文件格式 用于创建 编辑和混合运动捕捉和关键帧动画 也常用于动画文件在不同的DCC 三维软件 之间的互导
  • SpringBoot 场景开发多面手成长手册

    小册介绍 SpringBoot之强大 SpringBoot 的强大之处不言而喻 其底层 SpringFramework 强大的 IOC 容器和 AOP 机制 加之 SpringBoot 的自动装配 使得 SpringBoot 成为当今 Ja
  • 聊聊你不知道的Java变量转型

    单枪匹马你别怕 一腔孤勇又如何 这一路你可以哭 但不能怂 请关注 源码猎人 目录 简介 标识符命名规则 类变量 静态变量 实例变量 局部变量 变量数据类型 基本类型之间的转换 常见面试题 简介 Java变量分为类变量 实例变量 局部变量 在
  • 自动化测试工具大盘点

    本系列文章我们将带大家一起了解一下互联网大厂中通科技的自动化测试平台的搭建历程 从以下四个方面展开介绍 为什么要做这样一个统一的自动化测试平台 是如何做到统一的 平台上线后的收益 最后一部分会给大家分享一下他们未来的一些开发计划 在本系列文
  • 通过一份经典的UML类图来学会如何读懂UML类图

    一份经典的UML类图如下 继承关系 实线 空心三角形 鸟 动物 鸟继承动物 实现接口 虚线 空心三角形 大雁 飞翔 大雁实现了飞翔接口 实现接口 棒棒糖表示法 唐老鸭 讲人话 唐老鸭实现讲人话接口 关联关系 gt 实线剪头 企鹅 gt 气候
  • there.js3d模型动画交互

    there js3d模型动画交互 https blog csdn net qq 38316721 article details 81281749
  • Python+OpenCV开发环境搭建

    Python OpenCV开发环境搭建 本文主要介绍了Win7 64位系统下Python OpenCV开发环境的搭建 1 安装Python 2 7 13 从官网上或这里http download csdn net detail sysuzh
  • drools 7.x KIE API解析

    https blog csdn net wo541075754 article details 75004575 http dyingbleed com drools 2
  • git生成SSH密钥提示ssh文件不存在-已解决

    参考文章 https blog csdn net qq 41530816 article details 100179808 utm medium distribute pc relevant none task blog 2 7Edefa
  • 【腾讯云 Cloud studio 实战训练营】真正做到让你的开发成本只在编码

    文章目录 写在前面 CODING Cloud studio工具 在线编码 运行项目 代码上传 Cloud Studio 开发贪吃蛇 写在最后 写在前面 期待已久的体验活动终于来了 Clound Studio用了才知道有多爽 Cloud St
  • 给即将学习大数据的几点建议

    以下内容摘自一位学习大数据技术的朋友的感想和总结 文采飞扬 字字肺腑 产生共鸣 经本人同意 发布至此 希望给很多站在大数据门口驻足 犹疑 徘徊的小伙伴一些建议 大数据行业发展不等人 要想改变现状 现在出发 即可动手 大数据学习现在开始 为时
  • 静态类型和动态类型的区别

    一 静态类型和动态类型的区别 引自MDN Web Docs 动态类型 the interpreter assigns variables a type at runtime based on the variable s value at
  • Failed to replace DataSource with an embedded database for tests

    Failed to replace DataSource with an embedded database for tests 错误提示 Caused by java lang IllegalStateException Failed t
  • 如何完全卸载Android Studio

    打开控制面板或360软件管家等执行常规的卸载操作 找到SDK的安装目录手动删除SDK 进入 C Users lt 你的用户名下 gt 目录下 手动删除 android AndroidStudioX X gradle 目录 完成
  • hdu 1255 覆盖的面积

    Problem acm hdu edu cn showproblem php pid 1255 Reference hdu 1255 覆盖的面积 矩形面积并 矩形面积交 矩形周长并 线段树 扫描线总结 Meaning 给出 n 个矩形 求它
  • vs调试问题

    说明 生成的service服务 由外部html网页调用接口打印 操作步骤 Debug下运行service项目 菜单栏 调试 下点击 附加到进程 找打外部引用的html进程 ID 可在任务管理器进程内查看 然后设置断点调试对应的测试接口即可
  • 云孚科技受邀参加2023年大连数交会

    2023年7月6日至9日 由商务部 科技部 中国贸促会和辽宁省政府共同主办的2023中国国际数字和软件服务交易会 简称 数交会 在辽宁大连举行 云孚科技受中关村软件园孵化器邀请 与其他23家数字与软件服务企业组成北京展团共同参加本届数交会大
  • 代码中获取系统相关信息的函数

    1 GetModuleFileName 函数返回当前进程已加载可执行或DLL文件的完整路径名 以 0 终止 DWORD WINAPI GetModuleFileName HMODULE hModule 应用程序或DLL实例句柄 NULL则为
  • cmake指定编译器以及32位、64位版本

    概述 本文演示环境 win10 VS2017 1 指定变量值 咱们常用命令 cmake 在build目录下配置生成项目和解决方案 其实 这个命令还有其他用法 指定CMakeLists txt中的变量值 比如 fmt 库 的CMakeList