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

使用cmake忽略fortran定义的宏

CMake是一个跨平台的开源构建工具,用于管理软件构建过程。它可以自动生成与平台相关的构建文件,如Makefile或Visual Studio项目文件,从而简化了跨平台开发的过程。

在CMake中,要忽略Fortran定义的宏,可以使用CMake的条件语句来实现。条件语句可以根据不同的条件来执行不同的操作。

以下是一个示例的CMakeLists.txt文件,展示了如何使用条件语句来忽略Fortran定义的宏:

代码语言:txt
复制
cmake_minimum_required(VERSION 3.0)
project(MyProject)

# 添加Fortran源文件
file(GLOB FORTRAN_SOURCES "*.f90")

# 判断是否需要忽略Fortran定义的宏
if(NOT IGNORE_FORTRAN_MACROS)
    # 添加Fortran宏定义
    add_definitions(-DENABLE_FORTRAN_MACROS)
endif()

# 添加C++源文件
file(GLOB CPP_SOURCES "*.cpp")

# 生成可执行文件
add_executable(MyExecutable ${FORTRAN_SOURCES} ${CPP_SOURCES})

在上述示例中,首先使用file(GLOB FORTRAN_SOURCES "*.f90")命令添加Fortran源文件,然后使用条件语句if(NOT IGNORE_FORTRAN_MACROS)判断是否需要忽略Fortran定义的宏。如果不需要忽略,可以使用add_definitions(-DENABLE_FORTRAN_MACROS)命令添加Fortran宏定义。最后,使用add_executable(MyExecutable ${FORTRAN_SOURCES} ${CPP_SOURCES})生成可执行文件。

关于CMake的更多信息和用法,请参考腾讯云的CMake产品文档:CMake 产品文档

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

相关·内容

cmake教程5-macro定义以及传递参数给源文件

通过cmake添加macro定义 出入到源文件,例如在编译opencv/caffe时候,我们通过cmake -DUSE_CUDA=ON/OFF来确定,是否使用cuda....问题cmake中如何实现上述两个功能呢? 至于问题1: 我们可能想到直接在头文件中定义,这样也可以,但是如果直接在cmake定义,然后传递给程序读取生成更加灵活。.../demo11 version: 1.0 ---- 添加macro到src文件中(add_definitions/option) 本实例在cmake中添加macro定义到源文件中,从而选择使用不同lib...项目目录如下:demo12.cpp根据cmake定义macro USE_SPECIFIED决定使用模块SpecifiedFun(特定函数),还是模块CommonFun(一般函数). ?.../demo12 Select to use common function 使用macro USE_SPECIFIED直接使用cmake ..

9.5K30

简述C语言定义使用

1 概述 在工程规模较小,不是很复杂,与硬件结合紧密,要求移植性时候,可采用定义简化编程,增强程序可读性。 当作为常量使用时,C程序员习惯在名字中只使用大写字母。...不要使用定义新类型名,应该使用typedef,否则容易造成错误。 给添加注释时请使用块注释(/* */),而不要使用行注释。因为有些编译器可能会把后面的行注释理解为一部分。...尽量使用const取代定义符号常量。...对于较长使用频率较高重复代码片段,建议使用函数或模板而不要使用带参数定义;而对于较短重复代码片段,可以使用带参数定义,这不仅是出于类型安全考虑,而且也是优化与折衷体现。...尽量避免在局部范围内(如函数内、类型定义内等)定义,除非它只在该局部范围内使用,否则会损害程序清晰性。

1.6K20

Cmake使用

参数使用括弧括起 参数之间使用空格或分号分开 指令是大小写无关,参数和变量是大小写相关 set(HELLO hello.cpp) add_executable(hello main.cpp hello.cpp...) ADD_EXECUTABLE(hello main.cpp ${HELLO}) 变量使用${}方式取值,但是在 IF 控制语句中是直接使用变量名 重要指令和CMake常用变量 重要指令 cmake_minimum_required...(VERSION versionNumber [FATAL_ERROR]) project – 定义工程名称,并可指定工程支持语言 # 指定工程名为HELLOWORLD project(HELLOWORLD...) 语法:project(projectname [CXX] [C] [Java]) set – 显式定义变量 # 定义SRC变量,其值为main.cpp hello.cpp set(SRC sayhello.cpp...编译流程 在 linux 平台下使用 CMake 构建C/C++工程流程如下: 手动编写 CmakeLists.txt。

1.3K30

C语言定义(#define定义常量​、#define定义​、 带有副作用参数、 替换规则、 函数对比)

一、#define基本语法 在C语言中,常量是使用频率很高一个量。常量是指在程序运行过程中,其值不能被改变量。常量常使用#define来定义。...使用#define定义常量也称为符号常量,可以提高程序运行效率。...Microsoft Word中对定义为:“就是能组织到一起作为一独立命令使用一系列word命令,它能使日常工作变得更容易”。...0; } 五、带有副作用参数​ 当参数在定义中出现超过一次时候,如果参数带有副作用,那么你在使用这个时候就可能出现危险,导致不可预测后果。...每次使用时候,一份定义代码将插入到程序中。除非比较短,否则可能大幅度增加程序长度。 2. 是没法调试。 3. 由于类型无关,也就不够严谨。 4.

18010

C语言中定义使用

本文链接:https://blog.csdn.net/solaraceboy/article/details/102729793 C语言中定义使用 三种类型预处理指令 定义 是比较常用一种预处理指令...,这里我们主要讨论带参数。...带参数(函数式定义如下: #define EXAMPLE(x,y,z) 替换列表 注意:在名字和左括号之间没有空格。 优点: 程序可能会更快一些; 更同意。...缺点: 编译后代码通常会变大。 参数没有类型检查。 无法用指针来指向一个可能会不止一次地计算它参数。...文件包含 条件编译 适用于预处理指令规则 指令都以 # 开始 在指令符号之间可以插入任意数量空格和水平制表符。 指令总是在第一个换行符处结束,除非明确地指明要延续。

1.4K00

CMake 秘籍(四)

第八章:项目结构 在本章中,我们将涵盖以下配方: 使用函数和实现代码复用 将 CMake 源代码拆分为模块 编写一个函数来测试和设置编译器标志 使用命名参数定义函数或 重新定义函数和...我们选择使用而不是函数,因为我们还希望在调用范围内使用内部定义变量来改变消息颜色。...: include(cmake/colors.cmake) 还有更多 推荐做法是在模块中定义或函数,然后调用或函数。...使用模块包含作为函数调用是不好做法。包含模块不应该做更多事情,除了定义函数和以及发现程序、库和路径。...这种方法为我们提供了实现具有更健壮接口和更易读函数/调用函数和机会。 还有更多 选项关键字(在本示例中未使用)由cmake_parse_arguments定义为TRUE或FALSE。

15820

CMake使用

CMake是一个跨平台Makefile生成工具,可以根据特定规则生成相应Makefile文件,并对C/C++源代码进行编译和管理。...有两篇博客介绍CMake使用,比较通俗易懂,链接地址是: Cmake 详解 CMake 入门实战 CMake官方下载地址为:https://cmake.org/download/ 官方文档地址为:CMake...3.16 Documentation 官方CMake指南地址为:CMake Tutorial 一、CMake中添加对C++11支持 1、在对应CMakeLists.txt文件中加入以下语句: add_definitions...}") endif(CMAKE_COMPILER_IS_GNUCXX) 2、延伸 如何写cmake使其包含c++11特性 (-std=c++11如何写进cmakeList.txt) 使用g++版本和...github上面有一个韩国人jacking75写简单cmake使用示例, examples_CMake项目地址是:https://github.com/jacking75/examples_CMake

82030

C语言中定义

在一个定义中,编译器可以检测到绝大多数由多余符号所导致错误。但不幸是,编译器会将每一处使用这个地方标为错误,而不会直接找到错误根源——定义本身,因为定义已经被预处理器删除了。...在名字和左括号之间必须没有空格。如果有空格,预处理器会认为是在定义一个简单,其中(x1,x2,…,xn)是替换列表一部分。 当预处理器遇到一个带参数,会将定义存储起来以便后面使用。...2) 、预处理器只会替换完整记号,而不会替换记号片断。因此,预处理器会忽略嵌在标识符名、字符常量、字符串字面量之中名。...4) 、不可以被定义两遍,除非新定义与旧定义是一样。小间隔上差异是允许,但是替换列表(和参数,如果有的话)中记号都必须一致。 5) 、可以使用#undef指令“取消定义”。...定义do-while循环do do循环必须始终随跟着一个分号,因此我们不会遇到在if语句中使用那样问题了。

6K10

Tool之预定义

编译器都会预定义一些,这些是不可取消,来看看VxWorks中可能用到这几个 __FILE__ 字符串常量,表示当前文件名,包含绝对路径 __LINE__ 十进制整型数,表示当前代码行号 __FUNCTION...__ 字符串常量,表示当前函数名,但它不是 这三个是在调试语句里经常用,至少是公众号VxWorks567经常用 ?...int最大值 __LONG_MAX__ signed long最大值 __LONG_LONG_MAX__ signed long long最大值 __INTMAX_MAX__ intmax_t最大值...不建议直接使用这几个,而是包含系统头文件 ?...__TIMESTAMP__ 字符串常量,表示当前文件最后修改时间,包含星期、月、日、时、分、秒、年,共24个字符 ? 有点意思吧 这正是: 系统几个,调试挺好用。 溶于代码中,功能妙无穷。

69110

CMake 秘籍(五)

定义了{_project_name}_SOURCE_DIR和{_project_name}_BINARY_DIR,我们使用而不是函数,因为{_project_name}_SOURCE_DIR和{_project_name...对于我们当前目的,名称重整并不是真正问题。Fortran 2003 标准为函数和子程序定义了一个bind属性,它接受一个可选name参数。...我们还使用FortranCInterface_HEADER函数来生成包含头文件,以处理 Fortran 子程序符号修饰。...) 此命令将生成包含符号修饰fc_mangle.h头文件,如 Fortran 编译器所推断,并将其保存到当前二进制目录CMAKE_CURRENT_BINARY_DIR。...由于 Fortran 不区分大小写,子程序可能以小写或大写形式出现,因此需要将两种情况都传递给。请注意,CMake 还将为隐藏在 Fortran 模块后面的符号生成修饰

39620

Excel教程 (介绍与基本使用)

大家好,又见面了,我是你们朋友全栈君。 Excel教程 (介绍与基本使用) Microsoft excel是一款功能非常强大电子表格软件。...随着支持Windows应用程序不断增多和功能不断增强,越来越多程序增加了处理来方便用户自由扩展。但初期各应用程序所采用语言并不统一,这样用户每使用一种应用程序时都得重新学习一种语言。...为了完成工作,就让我们一起来学习”妙用吧。 一)、自学 首先需要明确是,本文不可能教会您关于所有内容。...对录制进行修改不仅可以学习使用,还能大大简化编写。 二)、基本概念 为了学习excel中,我们需要先了解以下一些基本概念。...(1,1)  Cells(1,2).Select ‘选定B1单元格,使其成为当前单元格 ActiveCell=I+1 ‘以I+1为当前单元格赋值 2、用公式赋值 在使用中,可能会更多地用公式来给单元格赋值

6.3K10

Git忽略文件.gitignore使用

本博客旨在自我学习使用,如有任何疑问请及时联系博主 1.WHY?# 当你使用git add .时候有没有遇到把你不想提交文件也添加到了缓存中去?...很简单,git为我们提供了一个.gitignore文件只要在这个文件中申明那些文件你不希望添加到git中去,这样当你使用git add .时候这些文件就会被自动忽略掉。...3.使用方法# 首先,在你工作区新建一个名称为.gitignore文件。然后,把要忽略文件名填进去,Git就会自动忽略这些文件。...如果有些文件已经被你忽略了,当你使用git add时是无法添加,比如我忽略了*.class,现在我想把HelloWorld.class添加到git中去: $ git add HelloWorld.class...如果我们意外将想要忽略文件添加到缓存中去了,我们可以使用rm命令将其从中移除: $ git rm HelloWorld.class --cached rm 'HelloWorld.class' 如果你已经把不想上传文件上传到了

85230

分享下平时我在windows平台下开发用一些比较好软件-Notepad++(二)

Notepad++ 不仅有语法高亮度显示,也有语法折迭功能,并且支持以及扩充基本功能外挂模组。...Notepad++是免费软件,可以免费使用,自带中文,支持众多计算机程序语言: C,C++,Java,pascal,C#,XML,SQL,Ada,HTML,PHP,ASP, AutoIt, 汇编, DOS...批处理, Caml, COBOL, Cmake, CSS,D, Diff, ActionScript, Fortran, Gui4Cli, HTML, Haskell, INNO, JSP, KIXtart...特性 所见即所得功能、语法高亮、字词自动完成功能,支持同时编辑多重文档;支持自定义语言; 对于HTML网页编程代码,可直接选择在不同浏览器中打开查看,以方便进行调试; 自动检测文件类型,根据关键字显示节点...,节点可自由折迭/打开,可显示缩进引导线,使代码富有层次感; 可打开双窗口,在分窗口中又可打开多个子窗口; 可显示选中文本字节数,并非普通编辑器所显示字数;提供了一些实用工具,如邻行互换位置、功能等

994130

PHP源码常用代码中定义

PHP源码常用代码定义: #define 名 字符串 #表示这是一条预处理命令,所有的预处理命令都以#开头。define是预处理命令。名是标识符一种,命名规则和标识符相同。...在编译预处理时,对程序中所有出现名”,都用定义字符串去代换,这称为“代换”或“展开”。 1....在定义参数称为形式参数,在调用中参数称为实际参数,这点和函数有些类似。 1....: 在定义使用#用来将参数转换为字符串,也就是在参数开头和末尾添加引号。...#define ZEND_FN(name) zif_##name 带参定义加连接符,会把ZEND_FN(count) 替换成 zif_count 多表达式定义: 在定义使用了 do{ }while

2.3K50
领券