각 플랫폼 컴 파일 러 의 Pre - build 및 Post - build 작업

4247 단어
@ [ide | build event] 보통 우 리 는 프로젝트 나 링크 라 이브 러 리 를 컴 파일 할 때 링크 를 컴 파일 하기 전이 나 링크 를 컴 파일 한 후에 일부 작업 을 수행 해 야 합 니 다. 예 를 들 어 제3자 라 이브 러 리 를 공사 의 작업 디 렉 터 리 에 복사 하거나 일괄 처리 (셸) 작업 을 수행 해 야 합 니 다. 이 럴 때 컴 파일 러 환경 에서 관련 설정 을 해 야 합 니 다.
Visual Studio####
설명: vs 2005 및 이상 에서 Build Events 를 지원 하 는 동시에 여러 줄 의 명령 을 지원 할 수 있 습 니 다. vs 2003 에서 여러 줄 의 명령 을 수행 하려 면 일괄 처리 파일 에 명령 을 쓰 고 일괄 처 리 를 통 해 실행 할 수 밖 에 없습니다.
  • Build Events 사각형 을 여 는 단계: 1. Solution Explorer 를 오른쪽 클릭 하고 Properties 2 를 선택 하 십시오. Build Events 를 선택 하면 Pre - build 와 Post - build 를 볼 수 있 고 Post - build event 를 실행 하 는 조건
  • 을 볼 수 있 습 니 다.
  • 해당 컴 파일 이벤트 에 다음 과 같은 상용 작업 을 추가 할 수 있 습 니 다. 1. build 완료 후 build 결과 물의 이름 (접미사) 을 수정 하고 기 존의 동명 파일 을 덮어 씁 니 다. copy /y $(TargetFileName) $(TargetName).XXX 2. 외부 명령 이나 일괄 처리 호출: call "C:\Program Files\XXX.exe" 3. 조건 판단: IF NOT $(ConfigurationName) == Release GOTO end call "C:\Program Files\XXX.exe" $(ProjectDir)$(TargetName).cvp :end 4. web procject 자동 배치 copy $(TargetDir)*.* //MyServer/MyService/bin copy $(ProjectDir)*.ascx //MyServer/MyService 5. 디 렉 터 리 작성 copy "$(ProjectDir)pri.bin" "$(SolutionDir)$(SolutionName)\$(OutDir)"
  • 으로 파일 복사
    xcode####
  • 프로젝트 TARGETS 를 선택 하고 빌 드 단계 페이지
  • 에 들 어 갑 니 다.
  • "+"단 추 를 누 르 고 "New Run Script Phase"
  • 를 선택 하 십시오.
  • Shell 선택 상자 에 사용 할 bash 버 전 을 입력 합 니 다. 기본 값 은/bin/sh
  • 입 니 다.
  • 다음 상자 에서 실행 하고 자 하 는 셸 명령 을 작성 합 니 다 (모든 셸 명령 지원)
  • 컴 파일 전 이 벤트 를 만 들 려 면 Run Script 를 Compile Sources 로 마우스 로 끌 어 다 놓 아야 합 니 다. 컴 파일 후 이 벤트 를 만 들 려 면 Run Script 가 마지막 에
  • CMake####
    CMake 에서 add 제공custom_command 와 addcustom_target 은 특정한 목표 나 라 이브 러 리 에 사용자 정의 명령 을 추가 하 는 데 사 용 됩 니 다. 이 명령 자 체 는 목표 의 일부분 이 되 고 목표 자체 가 구축 되 었 을 때 만 실 행 됩 니 다.이 목표 가 구축 되 었 다 면 명령 은 실행 되 지 않 을 것 입 니 다.
  • add_custom_command: 생 성 된 구축 시스템 에 사용자 정의 구축 규칙 추가
  • add_custom_command(TARGET target
                         PRE_BUILD | PRE_LINK| POST_BUILD
                         COMMAND command1[ARGS] [args1...]
                         [COMMAND command2[ARGS] [args2...] ...]
                         [WORKING_DIRECTORYdir]
                         [COMMENT comment][VERBATIM])
    

    명령 실행 시 기 는 다음 매개 변수 에 의 해 결 정 됩 니 다: 1. PREBUILD - 명령 은 다른 의존 항 이 실행 되 기 전에 2. PRE 를 실행 합 니 다.LINK - 명령 은 다른 의존 항 이 실 행 된 후 3. POST 를 수행 합 니 다.BUILD - 명령 은 목표 구축 이 완료 되면 실 행 됩 니 다.
  • add_custom_target: 출력 되 지 않 은 목 표를 추가 하여 항상 구축 합 니 다
  • add_custom_target(Name [ALL][command1 [args1...]]
                        [COMMAND command2 [args2...] ...]
                        [DEPENDS depend depend depend ... ]
                        [WORKING_DIRECTORY dir]
                        [COMMENT comment] [VERBATIM]
                        [SOURCES src1 [src2...]])
    

    지정 한 이름 의 목 표를 추가 하고 지정 한 명령 을 수행 합 니 다.이 대상 은 파일 을 출력 하지 않 았 습 니 다. 항상 만 료 된 것 으로 여 겨 집 니 다. 대상 의 이름 으로 파일 을 만 들 려 고 하 더 라 도.ALL 옵션 이 지정 되 어 있 으 면 이 대상 이 기본 빌 드 대상 에 추가 되 어 매번 실 행 될 수 있 음 을 나타 낸다.
    상기 두 컴 파일 명령 의 구체 적 인 용법 에 대해 서 는 다음 링크 를 참고 할 수 있 습 니 다: CMake 객 제 화 명령
    예 (CMake 파일 의 임의의 위치 에 추가):
    ADD_CUSTOM_TARGET(
        TestExample ALL
    )
    ADD_CUSTOM_COMMAND(TARGET TestExample
            PRE_BUILD
            COMMAND chmod 700 /home/chenjs/test
            COMMAND /home/chenjs/test -c -o ../../output ../../input/test.txt
            COMMENT "Generate project output file" 
    )
    

    Jni 환경 에서 의 Android. mk\#\#\#
    NDK 를 사용 하여 Android 프로젝트 에 CPP 라 이브 러 리 를 컴 파일 할 때 Android. mk 에 Shell 명령 을 직접 추가 할 수 있 습 니 다. 주의해 야 할 것 은 Cywin 과 Linux 에서 컴 파일 된 차이 점 입 니 다. 두 플랫폼 에 대한 차별 처리 예 (Android. mk 파일 에 올 바 르 게 추가):
    ifndef SYSENV
        SYSENV := $(shell uname)
    endif
    ifeq (CYGWIN,$(findstring CYGWIN,$(SYSENV)))
        $(info Generate project output file under cywin)
        $(shell ../../tools/test.exe -c -o ../../output ../../output ../../input/test.txt)
    else ifeq ($(SYSENV), Linux)
        $(info Generate project output file under linux)
        $(shell chmod 700 /home/chenjs/test)
        $(shell /home/chenjs/test -c -o ../../output ../../input/test.txt)
    endif
    

    참조 링크: MSDN build events Visual Studio build event 사용 방법 CMake 객 제 화 명령 Android. mk 의 항목 은 셸 bash 명령 Android. mk 로 자세히 설명 합 니 다.

    좋은 웹페이지 즐겨찾기