gmake가 Solaris 10에서 일부 파일을 암시 적으로 삭제합니다.

Dr. 데바시시 야나

gmake빌드 프로세스를 위해 GNU 실행 하고 있습니다. 파일 확장자를 다음과 같이 사용합니다.

.pc: pro*c code (compiled by using oracle's proc compiler)
.cpp : c++ code (compiled by GNU g++ compiler)
.o: object file
.mc: c++ code (compiled by GNU g++ compiler)
.mo: object file

.pc파일은 오라클에 의해 컴파일됩니다 proc컴파일러 및 출력 확장 데 .cpp또는은으로 컴파일됩니다 g++생성하는 컴파일러 .o파일을. 모든 .o파일은 결국 함께 연결되어 실행 파일을 만듭니다.

다른 요구 사항의 경우 아래와 같이 .pc 파일 내에 특수 코드 블록이 있어야합니다.

#ifdef SPCL_BLCK 
// some code
#endif // end of SPCL_BLCK 

특별한 코드 부분이 있든 없든 실행 가능한 변형을 가지려면 다른 경로가 필요합니다. 특수 코드 부분이 없으면 경로는 다음과 같습니다.

.pc -> .cpp -> .o -> executable

특수 코드 부분을 사용하는 경우 경로는 다음과 같습니다.

.pc -> .mc -> .mo -> executable 

내 PROC 플래그를 다음과 같이 정의했습니다.

PROCFLAGS := code=cpp 'include=(<<list of comma-separated include dirs>>)'

일반 규칙 (특수 코드가없는 경로) :

.pc.c:
        proc $(PROCFLAGS) $<
%.o: %.c
        g++ -c $(CCFLAGS) $<

어디에, CCFLAGS일반적인 C ++ 컴파일러 플래그는

규칙 (특수 코드가있는 경로) :

%.mo: %.mc
    $(CC) -c $(CCFLAGS) -DSPCL_BLCK -o $@ -x c++ $<

%.mc: %.pc
    $(PROC) $(PROCFLAGS) define=SPCL_BLCK oname=$@ $<

모두 정상이지만 성공적인 빌드 후 .mc파일이 삭제됩니다. rm명령에 의해 수행되는 것을 알지만 .mc파일 제거를 유도하는 암시 적 규칙이 있습니까? 암시 적 규칙 실행을 중지 할 수있는 명령을받을 수 있습니까?

Dr. 데바시시 야나

다음을 정의해야합니다 gmakefile.

.PRECIOUS:%.c %.mc

그렇지 않으면 GNU gmake는 .mc 파일이 중간 파일이라고 생각하고 이러한 .mc파일을 제거 합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

solaris에서 특정 파일 하나를 제외한 모든 파일 + 폴더를 재귀 적으로 삭제합니다.

분류에서Dev

OSX가 파일을 영구적으로 삭제합니다.

분류에서Dev

암시 적으로 삭제 된 복사 생성자 컴파일 오류가 포인터 값을 반환합니다.

분류에서Dev

제목에 단어가 포함되지 않은 모든 파일을 반발 적으로 삭제합니다.

분류에서Dev

요소가 패턴으로 정의 된 파일에서 줄의 일부를 삭제합니다.

분류에서Dev

CommonJS 모듈의 일부를 가져 오는 동안 암시 적으로 '모든'유형이있는 모듈의 선언 파일을 찾을 수 없습니다.

분류에서Dev

암시 적 맵으로 인해 Char 메서드가 컴파일되지 않습니다.

분류에서Dev

Visual Studio가 포함 파일을 열 수 없으며 경로에서 문자를 삭제합니다.

분류에서Dev

Solaris 11의 "/ usr / lib / passmgmt : 암호 파일이 사용 중입니다. 나중에 다시 시도하십시오."

분류에서Dev

파일 이름을 텍스트 파일과 부분적으로 일치시키고 그에 따라 삭제하는 가장 효율적인 방법은 무엇입니까?

분류에서Dev

Typescript / nodejs : 변수에 일부 위치에서 암시 적으로 'any'유형이 있습니다.

분류에서Dev

Fortran에서 부분적으로 번호가 매겨진 파일을 반복합니다.

분류에서Dev

git local repo에서 파일을 제거하고 파일을 제자리에두고 향후 삭제로부터 파일을 보호합니다.

분류에서Dev

Windows 10 파일 히스토리에서 일부 파일 백업을 자동으로 거부합니다.

분류에서Dev

[마크 다운] 파일의 시작 부분에 재귀 적으로 파일 이름 추가

분류에서Dev

텍스트 파일에서 백 슬래시가 포함 된 모든 줄을 삭제합니다.

분류에서Dev

텍스트 파일에서 백 슬래시가 포함 된 모든 줄을 삭제합니다.

분류에서Dev

실수로 파일을 삭제하고 다른 위치에 다시 추가 한 후 git 기록을 수정하려면 어떻게해야합니까?

분류에서Dev

부분적으로 동일한 파일 이름을 가진 CSV 파일 병합

분류에서Dev

Gamescene.sks 파일을 삭제하면 장치에서 CPU가 25 %로 증가합니다.

분류에서Dev

데이터 유형 nvarchar에서 varbinary (max) 로의 암시 적 변환은 허용되지 않으며 파일을 업로드합니다.

분류에서Dev

노트 패드 ++의 n 번째 줄마다 외부 파일에서 데이터 집합을 순차적으로 가져옵니다. 어떤 제안?

분류에서Dev

C-디버깅 목적으로 파일에 실행 가능한 ac의 모든 행을 표시합니다.

분류에서Dev

컴파일 타임에 클래스 이름을 암시 적으로 참조 할 수 있습니까?

분류에서Dev

DbContext에 단일 개체를 추가하면 암시 적으로 무한한 새 개체가 생성됩니다.

분류에서Dev

solaris에서 암호 에이징을 담당하는 파일 / 파일

분류에서Dev

오류는 문자열 파일 경로에서 'void'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

패턴을 일치시키고 패턴을 삭제하고 Solaris 10에서 다음 및 이전 줄을 삭제하는 방법

분류에서Dev

Windows 10에서 이상하고 긴 경로가있는 파일 이름을 삭제할 수 없습니다.

Related 관련 기사

  1. 1

    solaris에서 특정 파일 하나를 제외한 모든 파일 + 폴더를 재귀 적으로 삭제합니다.

  2. 2

    OSX가 파일을 영구적으로 삭제합니다.

  3. 3

    암시 적으로 삭제 된 복사 생성자 컴파일 오류가 포인터 값을 반환합니다.

  4. 4

    제목에 단어가 포함되지 않은 모든 파일을 반발 적으로 삭제합니다.

  5. 5

    요소가 패턴으로 정의 된 파일에서 줄의 일부를 삭제합니다.

  6. 6

    CommonJS 모듈의 일부를 가져 오는 동안 암시 적으로 '모든'유형이있는 모듈의 선언 파일을 찾을 수 없습니다.

  7. 7

    암시 적 맵으로 인해 Char 메서드가 컴파일되지 않습니다.

  8. 8

    Visual Studio가 포함 파일을 열 수 없으며 경로에서 문자를 삭제합니다.

  9. 9

    Solaris 11의 "/ usr / lib / passmgmt : 암호 파일이 사용 중입니다. 나중에 다시 시도하십시오."

  10. 10

    파일 이름을 텍스트 파일과 부분적으로 일치시키고 그에 따라 삭제하는 가장 효율적인 방법은 무엇입니까?

  11. 11

    Typescript / nodejs : 변수에 일부 위치에서 암시 적으로 'any'유형이 있습니다.

  12. 12

    Fortran에서 부분적으로 번호가 매겨진 파일을 반복합니다.

  13. 13

    git local repo에서 파일을 제거하고 파일을 제자리에두고 향후 삭제로부터 파일을 보호합니다.

  14. 14

    Windows 10 파일 히스토리에서 일부 파일 백업을 자동으로 거부합니다.

  15. 15

    [마크 다운] 파일의 시작 부분에 재귀 적으로 파일 이름 추가

  16. 16

    텍스트 파일에서 백 슬래시가 포함 된 모든 줄을 삭제합니다.

  17. 17

    텍스트 파일에서 백 슬래시가 포함 된 모든 줄을 삭제합니다.

  18. 18

    실수로 파일을 삭제하고 다른 위치에 다시 추가 한 후 git 기록을 수정하려면 어떻게해야합니까?

  19. 19

    부분적으로 동일한 파일 이름을 가진 CSV 파일 병합

  20. 20

    Gamescene.sks 파일을 삭제하면 장치에서 CPU가 25 %로 증가합니다.

  21. 21

    데이터 유형 nvarchar에서 varbinary (max) 로의 암시 적 변환은 허용되지 않으며 파일을 업로드합니다.

  22. 22

    노트 패드 ++의 n 번째 줄마다 외부 파일에서 데이터 집합을 순차적으로 가져옵니다. 어떤 제안?

  23. 23

    C-디버깅 목적으로 파일에 실행 가능한 ac의 모든 행을 표시합니다.

  24. 24

    컴파일 타임에 클래스 이름을 암시 적으로 참조 할 수 있습니까?

  25. 25

    DbContext에 단일 개체를 추가하면 암시 적으로 무한한 새 개체가 생성됩니다.

  26. 26

    solaris에서 암호 에이징을 담당하는 파일 / 파일

  27. 27

    오류는 문자열 파일 경로에서 'void'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

  28. 28

    패턴을 일치시키고 패턴을 삭제하고 Solaris 10에서 다음 및 이전 줄을 삭제하는 방법

  29. 29

    Windows 10에서 이상하고 긴 경로가있는 파일 이름을 삭제할 수 없습니다.

뜨겁다태그

보관