Imake 不拾取头文件

Imake 不拾取头文件

我正在构建一些使用 Imakefiles 的软件,目前不受支持。该软件确实有一个 Imake.tmpl 文件。它位于(相对于顶级目录)config/cf/Imake.tmpl 中。

由于该软件的子目录包含我输入的其他 Imakefiles(以下这个手册页):

 xmkmf -a . . 

第一个点表示顶级目录,第二个点表示当前目录。

我收到这个错误:

 mv -f Makefile Makefile.bak
 imake -I./config/cf -DTOPDIR=. -DCURDIR=.
In file included from Imakefile.c:34:0:
./config/cf/Imake.tmpl:33:0: fatal error: site.def: No such file or directory
 #include <site.def>
 ^compilation terminated.
  imake: Exit code 1.
  Stop.

site.def 文件确实存在,并且位于 config/project/site.def 下。

这是由 imake 生成的 Imakefile.c 的内容。当 imake 完成执行时,该文件将被删除,但可以通过创建到该文件的链接来保留它。

/* imake - temporary file */
#define DefaultOSName Linux 4.13.0-36-generic x86_64
#define DefaultOSMajorVersion 
#define LinuxDebian     4
#define LinuxInfoMagic  5
#define LinuxKheops     6
#define LinuxPro        7
#define LinuxRedHat     8
#define LinuxSlackware  9
#define LinuxTurbo      10
#define LinuxWare       11
#define LinuxYggdrasil  12
#define DefaultLinuxDistribution LinuxDebian
#define DefaultLinuxDistName Debian
#define HasGcc 1
#define HasGcc2 1
#define HasGcc3 1
#define GccMajorVersion 5
#define GccMinorVersion 2
#define INCLUDE_IMAKEFILE </tmp/IIf.j7V6mk>
#define IMAKE_TEMPLATE "Imake.tmpl"
#include IMAKE_TEMPLATE

任何建议,将不胜感激。

答案1

注意:我不是该软件的普通用户imake,也没有真的非常了解构建系统的情况应该上班。

从错误中可以清楚地看出,imake正在寻找要包含在 下的文件config/cf,但该site.def文件位于config/project.

黑客可以将site.def文件从当前位置符号链接到config/cf,或者在该位置创建文件的副本。

但这是一种黑客攻击,我确信您正在构建的软件没有它也可以正确构建。您应该查阅该软件的文档。可能xmkmf需要在另一个目录中运行,或者Imakefile可以轻松修改其中一个文件以-I向项目添加附加标志。

相关内容