在我的代码中,我使用了一个头文件,不幸的是,它在不同的Linux发行版下具有不同的位置。
在我的情况下,来自cfitsio的fitsio.h,它位于OpenSUSE 12.1中:
#include <cfitsio/fitsio.h>
在Arch Linux中:
#include <fitsio.h>
我想我可以使用一些预处理器指令来创建一个开关。我可以用它来测试我是在Linux还是Windows等,但我不知道我可以用来测试我是否在Arch Linux上。
还是有另一种方法/策略来处理这种情况吗?
答案 0 :(得分:7)
保持简单包括
#include <fitsio.h>
然后,在其他包含目录下,列出包含此标头的目录的路径,包括SUSE和Arch:
/path/to/header/cfitsio
/path/to/header
即使前者在Arch上不存在,也不会在编译过程中导致任何问题。
答案 1 :(得分:2)