영어프랑스어스페인어

Ad


온웍스 파비콘

include_server - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 include_server 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 include_server 명령입니다.

프로그램:

이름


include_server.py - C/C++에 대한 포함 종속성의 보수적 근사치

개요


포함_서버 --포트 INCLUDE_SERVER_PORT [옵션]

기술


include_server.py는 포함 서버 프로세스를 시작합니다. 이 프로세스는 다음의 쿼리에 응답합니다.
distcc(1) C/C++ 컴파일에 포함할 파일에 대한 클라이언트. include_server.py
명령 자체는 포함 서버가 생성되자마자 종료됩니다.

INCLUDE_SERVER_PORT 인수는 모든 통신에 사용되는 소켓의 이름입니다.
distcc 클라이언트와 포함 서버 사이. NS distcc 펌프(1) 명령은 책임이 있다
소켓 위치 생성, 이 스크립트에 전달, 모든 사용자에게 전달
INCLUDE_SERVER_PORT라는 환경 변수를 통해 distcc 클라이언트에 액세스합니다.

포함 서버에서 사용하는 프로토콜은 distcc의 RPC 구현을 사용합니다. 각 distcc
요청은 (1) 현재 디렉토리 및 (2) 인수 목록으로 구성됩니다.
컴파일 명령.

포함 서버가 요청을 처리할 수 있으면 distcc 클라이언트에 다음과 같이 응답합니다.
파일 경로 목록을 보냅니다. 파일 경로는 압축된 소스 및 헤더의 경로입니다.
포함 분석을 통해 컴파일에 필요한 파일을 찾습니다. 목록도
컴파일 서버에 필요한 심볼릭 링크와 더미 파일로 구성됩니다.
컴파일에 필요한 파일 시스템 부분의 정확한 복제본을 구성합니다. 에
이런 식으로 /path/foo.h와 같은 필요한 헤더 파일이 압축되고 이름이 바뀌고 저장됩니다.
/dev/shm/tmpiAvfGv.include_server-9368-1/path/foo.h.lzo와 같은 임시 위치. NS
distcc 클라이언트는 이 파일을 컴파일 서버로 전달합니다.
압축을 풀고 임시로 마운트합니다.

포함 서버가 요청을 처리할 수 없으면 빈 목록을 반환합니다.
distcc 클라이언트에.

포함 서버와 관련된 두 가지 종류의 오류가 있습니다. 포함 서버는
포함 계산에 실패하거나 다른 방식으로 실패합니다. 섹션 참조 포함 섬기는 사람 조짐.
또한 제거 서버에서의 컴파일은 계산된 값이 부적절하여 실패할 수 있습니다.
클로저를 포함하지만 로컬에서 재시도하면 성공합니다. 섹션 참조 DISTCC 불일치
조짐.

OPTION 개요


다음 옵션은 include_server.py에서 이해합니다.

-dPAT, --debug_pattern=PAT
경고 및 디버깅을 켜기 위한 비트 벡터
1 = 경고
2 = 일부 기능 추적
다른 XNUMX의 거듭제곱: include_server/basics.py를 참조하십시오.

-이자형, --이메일
'distcc-pump-errors' 또는 정의된 경우 환경 변수 값으로 이메일을 보냅니다.
DISTCC_EMAILLOG_WHOM_TO_BLAME, 포함 서버에 문제가 발생했을 때. 기본값은
이메일을 보내지 않습니다.

--email_bound NUMBER
보낼 최대 이메일 수(최종 이메일 추가). 기본값: 3.

--이메일 없음
이메일을 보내지 마십시오. 이것이 기본값입니다.

--경로_관찰_re=RE
파일 이름이 일치하는 실제 경로로 확인될 때마다 경고 메시지 발행
Python 구문의 정규식인 RE로. 이것은 찾는 데 유용합니다.
포함된 파일이 실제로 어디에서 왔는지 알 수 있습니다. RE=""를 사용하여 모두 찾으십시오. 메모:
경고는 -d1 이상으로 활성화해야 합니다.

--pid_file 파일 경로
포함 서버의 pid는 파일 FILEPATH에 기록됩니다. 이것은 스크립트를 허용합니다
이러한 distcc 펌프 포함 서버를 분해합니다.

-에스, --통계
포함 분석에 대한 정보를 stdout에 인쇄합니다.

--stat_reset_triggers=목록
LIST에 있는 파일 경로의 타임스탬프가 변경되거나
filepath는 존재하거나 존재하지 않습니다. LIST는 콜론으로 구분된 문자열입니다.
파일 경로, 아마도 간단한 glob을 포함할 수 있습니다(Python의 glob 모듈에서 허용하는 대로).
이러한 변경이 발생할 때마다 경고를 인쇄합니다(경고가 활성화된 경우). 이것
이 옵션은 distcc-pump의 일반적인 가정에 대한 제한된 예외를 허용합니다.
파일은 빌드 중에 수정되지 않습니다.

-NS, --시각
경과, 사용자 및 시스템 시간을 stderr로 인쇄합니다.

--unsafe_absolute_includes
절대 파일 경로가 포함된 경우에도 컴파일 서버에서 전처리 수행
발생합니다. 일반적으로 include-server는 로컬 사전 처리로 대체됩니다.
절대 포함을 감지하는 경우. 따라서 이 플래그는 이러한 문제를 방지하는 데 유용합니다.
절대 포함 시 폴백은 잘못된 경보입니다.
include는 전처리 중에 또는 절대적으로 포함된 파일 때문에 폐기됩니다.
컴파일 서버에 존재합니다.

보다 정확하게는 --unsafe_absolute_includes를 사용하면 절대 포함이 무시됩니다.
수집 목적에는 폐쇄가 포함됩니다. 이 옵션을 사용하면
(1) 헤더가 실제로 헤더에 포함될 수 있기 때문에 잘못된 결과
컴파일 서버 및 클라이언트와 동일하지 않을 수 있습니다. (2) 포함
헤더의 지시문은 더 이상 분석되지 않습니다.

이 옵션은 하드코딩된 절대 위치가 있는 코드를 컴파일하는 데 유용합니다.
를 렌더링하는 조건부 지시문(예: "#ifdef") 내의 헤더 파일
관련 없는 것을 포함합니다. 보다 정확하게는 이러한 포함이 기간 동안 제거되어야 합니다.
실제 구성을 위한 전처리. 그렇다면 존재의 문제는
헤더 파일은 무의미하고 원격 컴파일은 건전합니다. 다음과 같은 경우가 종종 있습니다.
이러한 포함은 실제와 다른 비정상적인 구성을 위한 것입니다.
구성.

-V, --검증
CPP 클로저의 파일이 include에 의해 계산된 클로저에 포함되어 있는지 확인합니다.
프로세서.

-w, --write_include_close
include에 의해 계산된 포함된 모든 파일을 나열하는 .d_approx 파일을 작성하십시오.
섬기는 사람; -x를 사용하여 CPP에서 계산한 대로 포함된 파일을 추가로 씁니다.
.d_exact 파일.

-NS, --정확한 분석
대신 CPP를 사용하고 시스템 헤더 파일을 생략하지 마십시오.

포함 섬기는 사람 조짐 문제점


포함 프로세서에서 나올 가능성이 가장 높은 메시지와 경고는 다음과 같습니다.

전처리 토지 상에서. 포함 섬기는 사람 지원 피복: 할 수 없었다 결정 디폴트 값 체계
포함 디렉토리
기본 시스템 헤더 디렉토리를 결정하기 위해 포함 서버는 다음을 실행합니다.
세션 동안 필요한 각 언어에 대해 한 번씩 컴파일러. 이 메시지는 다음을 나타냅니다.
distcc에 지정된 컴파일러가 클라이언트에 없습니다.

전처리 토지 상에서. 포함 섬기는 사람 지원 피복: 보석 아웃 때문에 포함 섬기는 사람
지출 배우기 보다 ...NS 사용자 시간 취급 의뢰
드문 상황에서 포함 서버가 매우 복잡한 매크로를 분석하지 못합니다.
표현. distcc 클라이언트는 일반 distcc 모드를 사용합니다.

경고: 파일 경로 절대로 필요한 것 be 상대적인 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만 아니다
포함 서버는 다음과 같은 절대 파일 경로를 허용하지 않습니다.
/usr/include/stdio.h, include 지시문에서
컴파일 서버 시스템의 이 헤더는 컴파일 서버 시스템의 헤더와 동일합니다.
고객. 인클루드 서버는 인클루드 클로저 분석을 포기합니다. distcc
클라이언트는 펌프 모드를 사용할 수 없습니다.

항상 신뢰할 수 있는 방법은 아니지만 이 문제를 극복하려면 환경 변수를 설정하십시오.
distcc-pump를 호출할 때 INCLUDE_SERVER_ARGS='--unsafe_absolute_includes'
--unsafe_absolute_includes 옵션을 포함 서버에 전달하는 스크립트.

경고: 절대 파일 경로 ... 였다 무시
--unsafe_absolute_includes가 사용 중입니다. 이 상황은 같은 상황에서 발생합니다
"파일 경로는 상대적이어야 하지만 그렇지는 않음"이 발행되는 경우와 같은 상황이지만 이 경우
include가 distcc 클라이언트에 대한 답변을 제공하는 경우입니다.

경고: 경로 '/경로/파일' 변경/왔다 으로 존재/없음 이상 존재
이 경고는 통계 재설정 트리거를 사용할 때 발생합니다. /PATH/FILE
변경되면 포함 서버가 캐시를 지웁니다. 파일의 새 버전(또는
부족)은 포함 분석을 유효하지 않게 만듭니다. 이 메시지는 일반적으로
무시됨; 빌드 시스템에서 다소 불안정한 파일 사용을 의미합니다.
파일을 다시 쓰지 않도록 빌드 시스템을 수정하는 것이 좋습니다.

경고: 럭셔리 번역 단위 ..., 조회 of 파일 ... 해결 ... 누구의 진짜 경로 is
...
이 경고는 새로운 실제 경로가 다음과 일치할 때 --path_observation_re와 함께 발생합니다.
소스 또는 헤더 파일이 관찰됩니다.

DISTCC 불일치 조짐


빌드 시스템, distcc 및 포함 서버 간의 상호 작용은 다소
복잡한. distcc 명령이 원격 서버에서 실패한 컴파일을 수신하면
로컬에서 컴파일을 다시 시도합니다. 이 섹션에서는 불일치의 원인에 대해 설명합니다.
원격 컴파일과 로컬 컴파일 사이. 다음은 강등 메시지에 의해 플래그가 지정됩니다.

__________경고: ... 펌프 모드 편집 실패한 on 섬기는 사람, 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만 성공한 토지 상에서.
__________Distcc 펌프 였다 강등 평원 방법. 만나다 전에, 거리cc 모순 증상
섹션에 있어야 합니다. in 전에, 포함_서버(1) 사람 페이지.

distcc-pump 스크립트는 빌드가 끝날 때 이 메시지를 발행합니다. 이것은 다음을 의미합니다.
원격 컴파일 후 적어도 하나의 distcc 호출 로컬 컴파일이 성공했습니다.
실패한. 이러한 불일치가 발생한 각 distcc 호출도 차례로 다음을 발행합니다.
다음과 같은 메시지:

경고: 편집 of '...' 실패한, 재시도 장소 상에서 있어 a 다른 결과.

강등은 후속 distcc 호출이 일반 distcc 모드를 사용하도록 합니다. 따라서
빌드의 나머지 부분에 대해 로컬 시스템에서 사전 처리가 수행됩니다. 이것
이 기술은 모든 컴파일이 로컬 시스템에서 끝나는 매우 느린 빌드를 방지합니다.
원격으로 실패한 후.

물론 원격 실패 후 로컬 컴파일이 실패하면 distcc
호출은 로컬 컴파일의 XNUMX이 아닌 상태로 종료됩니다. 오류 메시지
인쇄된 것은 또한 로컬 편집의 것입니다.

distcc-pump 모드에서 로컬 컴파일로의 폴백 동작은 다음을 설정하여 비활성화할 수 있습니다.
환경 변수 DISTCC_FALLBACK을 1로 설정하면 distcc 명령이 즉시 실패합니다.
원격 컴파일이 실패했기 때문입니다. 이 설정은 이유를 디버깅하는 데 매우 유용합니다.
이제 서버의 출력이 인쇄될 것이기 때문에 원격 컴파일이 잘못되었습니다.

다음으로 불일치의 가능한 원인에 대해 설명합니다.

XNUMXD덴탈의 사용자 변경 a or 머리글 파일 ...동안 전에, 짓다.
이것은 물론 일관성 없는 결과를 낳습니다.

A or 머리글 파일 변경 ...동안 전에, 짓다.
빌드 시스템은 파일을 다시 작성합니다. Linux 커널 2.6의 경우 이 문제가 발생합니다.
'include/linux/compile.h' 및 'include/asm/asm-offsets.h'. 이 조건은 고정
포함 서버에 다음 통계가 있을 때 캐시를 재설정해야 함을 알립니다.
파일이 변경됩니다. 실제로 이것은 콜론에서 파일을 수집하여 수행됩니다.
목록을 분리한 다음 INCLUDE_SERVER_ARGS 명령을 다음과 같이 설정합니다.

include_server_args="--stat_reset_triggers=include/linux/compile.h:include/asm/asm-
오프셋.h"

A 머리글 파일 is 잠재적으로 포함, 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만 하지 지원 존재하다, is 그때 후에 포함되어 있습니다.

이것은 일부 헤더 foo.h가 다른 헤더 파일인 trick.h를 포함하지만,
트릭.h 파일이 아직 생성되지 않았으며 포함이 실제로 무시됩니다.
전처리 지시문 때문입니다. 포함 서버는
트릭.h의 존재, 가능한 모든 방법 지시문을 과도하게 근사하기 때문에
실제로 평가합니다. 트릭.h 파일이 존재하지 않는 것으로 확인되었습니다. 만약 나중에
생성된 다음 실제로 포함되면 포함 서버가 잘못 믿을 것입니다.
파일이 아직 존재하지 않는다는 것입니다. 이 문제에 대한 해결책은
빌드 시스템은 헤더 파일이 처음으로 포함되기 전에 trick.h를 생성합니다.
트릭에 대한 구문 참조를 만듭니다.h

XNUMXD덴탈의 포함 섬기는 사람 였다 시작 --unsafe_absolute_includes.
이것은 원격에 존재하지 않는 헤더 파일이 로컬에 있고
실제로 사용되는 것입니다. 이러한 포함은 종종 조건부로 보호됩니다.
실제로 특정하고 자주 사용되도록 평가하는 지시문
흔하지 않은 플랫폼. 그러한 플랫폼을 위해 컴파일하지 않는다면
올바른 사용 --unsafe_absolute_include.

XNUMXD덴탈의 포함 섬기는 사람 계산 된 전에, 잘못 포함합니다.
우리는 그러한 상황을 모릅니다.

EXIT 코드


include_server.py의 종료 코드는 일반적으로 0입니다. 포함 서버가 시작되었음을 나타냅니다.
pid_file의 존재를 통해 제대로 전달됩니다.

환경 변수


DISTCC_EMAILLOG_WHOM_TO_BLAME 포함 서버 자동화에 사용할 이메일 주소
이메일. 기본값은 'distcc-pump-errors'(아마도
도메인에 존재하지 않음).

또한 컴파일러를 호출할 때 추가 환경 변수를 사용할 수 있습니다.

onworks.net 서비스를 사용하여 온라인으로 include_server 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

  • 1
    페이저
    페이저
    Phaser는 빠르고 무료이며 재미있는 공개 프로그램입니다.
    제공하는 소스 HTML5 게임 프레임워크
    WebGL 및 캔버스 렌더링
    데스크톱 및 모바일 웹 브라우저. 계략
    공동 수 있습니다 ...
    페이저 다운로드
  • 2
    바살 엔진
    바살 엔진
    VASSAL은 제작을 위한 게임 엔진입니다.
    기존 보드의 전자 버전
    그리고 카드 게임. 다음을 지원합니다.
    게임 조각 렌더링 및 상호 작용,
    그리고 ...
    VASSAL 엔진 다운로드
  • 3
    OpenPDF - iText의 포크
    OpenPDF - iText의 포크
    OpenPDF는 다음을 생성하기 위한 Java 라이브러리입니다.
    및 LGPL로 PDF 파일 편집 및
    MPL 오픈 소스 라이선스. OpenPDF는
    iText의 LGPL/MPL 오픈 소스 후계자,
    에이...
    OpenPDF 다운로드 - iText 포크
  • 4
    사가 GIS
    사가 GIS
    SAGA - 자동화 시스템
    Geoscientific 분석 - 지리적입니다
    정보 시스템(GIS) 소프트웨어
    지리 데이터를 위한 엄청난 기능
    처리 및 아나...
    사가 GIS 다운로드
  • 5
    Java/JTOpen용 도구 상자
    Java/JTOpen용 도구 상자
    IBM Toolbox for Java / JTOpen은
    지원하는 Java 클래스 라이브러리
    클라이언트/서버 및 인터넷 프로그래밍
    OS/400을 실행하는 시스템에 모델,
    i5/OS, 오...
    Java/JTOpen용 도구 상자 다운로드
  • 6
    D3.js
    D3.js
    D3.js(또는 데이터 기반 문서의 경우 D3)
    할 수 있는 JavaScript 라이브러리입니다.
    동적, 대화형 데이터 생성
    웹 브라우저의 시각화. D3와 함께
    당신...
    D3.js 다운로드
  • 더»

Linux 명령

Ad