处理不同平台上的#include路径
Handling #include paths on different platforms
我正在用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
相关文章:
- 如何将更多文件夹添加到c++include路径
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 如何在 c++ 中正确指定 #include 路径以使程序可移植
- 修改生成文件以简化框架 #include 路径
- 添加 #include 的搜索路径
- 为什么"/usr/include"不在 GCC 默认搜索路径中
- CMake导出的库-在客户端应用程序中找不到include/Lib路径
- 如何设置 CMake 来构建包含路径包含的代码,如 #include < libdir/lib>?
- 包含一批库和目录路径以"Include Additional Directories"视觉C++的任意方法
- 获取Qt项目所需的所有include路径、lib等
- 您如何为Sparx企业架构师逆向工程设置 #include 路径
- visualstudio目录和include路径
- 为最简单的项目生成的EclipseCDT构建并没有正确设置include路径
- 实际需要的#include路径更长
- Visual Studio 2010 C++是否可以从引用的项目继承include路径
- swig接口文件的正确sstream include路径是什么
- mErrCount:虽然在项目属性的include路径中声明了标识符,但未找到该标识符
- 阻止Apple clang在标准include路径中添加Xcode路径
- 处理不同平台上的#include路径
- 为c++在Eclipse中添加Boost - include路径问题