현재 지원되지 않는 Imakefile을 사용하는 일부 소프트웨어를 구축 중입니다. 소프트웨어에는 Imake.tmpl 파일이 있습니다. 이는 config/cf/Imake.tmpl에 위치합니다(최상위 디렉토리 기준).
소프트웨어의 하위 디렉토리에는 내가 입력한 다른 Imakefile이 포함되어 있으므로(아래)이 매뉴얼 페이지):
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
프로젝트에 추가 플래그를 추가할 수도 있습니다.