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

时间:2014-05-18 19:41:12

标签: c++ linux windows git ncurses

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

我的协作者在Windows中工作并使用Cygwin模拟bash shell。但是,cygwin会安装ncurses库,因此您必须使用#include <ncurses/ncurses.h>。改变是微不足道的,但是如果我们中的一个人忘记了看起来很愚蠢的话,我们的Git历史可以包含多次来回变换。

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

1 个答案:

答案 0 :(得分:0)

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

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

有关详细信息,请参阅http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/predefined-macros-platform.html