我正在致力于使 Fortran 应用程序在 Windows 和 Linux 上运行。到目前为止,还仅限于 Windows。目前,Linux 版本完全基于终端,而 Windows 版本则具有 GUI。我们最终将拥有 Linux 版本的 GUI。
为了处理 Windows 和 Linux 之间的差异,我一直在使用预处理器指令,例如
!DEC$ IF DEFINED(_WIN32)
...
!DEC$ ELSEIF DEFINED(__linux)
...
!DEC$ ENDIF
这非常适合我现在的需要,因为我知道 Windows 版本总是有 GUI,而 Linux 版本从来没有 GUI。但是,我想将其分开,以便最终我可以在两个操作系统上同时拥有 GUI 和无 GUI 构建。
有没有一种方法可以设置我自己的预处理器变量,以便我可以有类似的语句
!DEC$ IF DEFINED(GUI)
...
!DEC$ ELSE
...
!DEC$ ENDIF
基本上,我如何告诉预处理器我想要一个名为
GUI
的变量以及如何设置它的值?我知道我可能没有使用正确的术语,因为我对这种编程不太熟悉。请随意纠正我的语法。
这通常是通过构建变体的命令行选项来完成的。大多数编译器为此使用 -D (或 /D),例如
-DGUI
,它定义了一个您可以测试的符号 GUI
(该值将为 1,除非您给出不同的值。)请检查编译器的文档以了解看看有什么选项。