处理不同平台上的#include路径

Handling #include paths on different platforms

本文关键字:#include 路径 平台 处理      更新时间:2023-10-16

我正在用NCurses在Arch Linux平台上开发一个软件。它在全局标头中有一个#include <ncurses.h>

我的合作者在Windows中工作,用Cygwin模拟bash shell。但是,cygwin安装了护士库,因此您必须使用#include <ncurses/ncurses.h>。这是微不足道的变化,但我们的Git历史可能包括这一行来回更改多次,如果我们中的一个人忘记了这似乎很愚蠢。

是否有某种预处理器检查,我可以做使用适当的路径?

正如@BoBTFish所说,您应该在Makefile中指定包含路径(每个平台不同)。如果没有,您可以使用宏__CYGWIN__(或__CYGWIN32__,不确定哪一个将工作)来检测您是否正在使用cygwin,如

#ifdef __CYGWIN__
#include <ncurses/ncurses.h>
#else
#include <ncurses.h>
#endif