이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 fteqcc 명령입니다.
프로그램:
이름
fteqcc - FTE QuakeC 컴파일러
개요
fteqcc [옵션]
기술
이 매뉴얼 페이지는 간략하게 설명합니다 fteqcc 명령.
fteqcc QuakeC 소스 코드를 Quake1의 바이너리 게임 데이터로 컴파일하거나
QuakeWorld 기반 게임.
옵션
--도움 옵션 요약을 표시합니다.
-Fautoproto
자동 프로토타이핑 활성화
-프와즘 모든 어셈블러 코드를 qc.asm에 덤프
-키워드, -노키워드
언어 키워드를 켜거나 끕니다. 전환할 수 있는 키워드는 asm, break,
케이스, 클래스, const, 계속, 기본, 엔티티, 열거형, 열거형 플래그, extern, float, for,
goto, int, 정수, noref, nosave, 공유, 상태, 문자열, 구조체, 스위치,
thinktime, typedef, union, var 및 벡터.
-O0, -O1, -O2, -O3,
0과 3 사이의 최적화 수준을 사용합니다. 0을 사용하면 최적화가 수행되지 않고 기타
값에 섹션의 옵션이 다소 포함됩니다. 최적화.
-src 예배 규칙서
소스 파일(progs.src)을 찾을 디렉토리를 지정합니다.
-벽 모든 경고 표시
FORMAT
fteqcc 여러 출력 형식을 지원합니다.
-티스탠다드, -Tq1, -Tquakec
이것은 기본 설정이며 원본 Quake1과 호환되는 코드를 생성합니다.
-텍센2, -Th2
Hexen2 호환 코드를 출력합니다.
-Tkkqwsv, -Tkk7, -Tbigprogs, -Tversion7, -Tkkqwsv
KK 버전 7 호환 프로그램 생성
-TFTE FTE Quake와 관련된 코드를 생성합니다.
최적화
다음 옵션을 사용하여 최적화를 미세 조정할 수 있습니다. 그들 중 일부는 활성화
자동으로.
-O과제
c = a*b는 두 번이 아닌 한 번의 작업으로 수행되며 이전 작업을 유발할 수 있습니다.
디컴파일러가 실패합니다.
-오쇼르테니프
if(!a)는 전통적으로 두 문장으로 컴파일되었습니다. 이 최적화는
하나이지만 일부 디컴파일러가 혼동을 일으킬 수 있습니다.
-Ononvec_parms
원래 qcc에서는 함수 매개변수가 다음과 같은 경우에도 벡터 저장소로 지정되었습니다.
수레. 이렇게 하면 해결됩니다.
-Oconstant_names
프로그램에서 상수 이름을 제거하여 더 작은 파일을 만듭니다. 그것
디컴파일러가 이름을 생략하거나 숫자로 만든 이름을 만들도록 합니다.
-Oconstant_name_strings
프로그램에서 문자열 상수의 이름을 제거합니다. 이것은 애드온을 깨뜨릴 수 있으므로
그런 경우에는 사용하지 마십시오.
-Odupconstdef
동일한 값인 상수의 정의를 병합합니다. 에 각별히 주의
지속적인 경고 할당.
- 중복 문자열
progs에 저장된 문자열 테이블을 압축합니다. 상당히 됩니다
이것으로 더 작습니다.
-오로컬스
로컬 이름과 정의를 제거합니다. 이것은 디컴파일을 정말로 어렵게 만듭니다
-ofunction_names
이것은 호출되지 않은 함수의 이름을 제거합니다. 많이 만들지 않는다
그래도 임팩트.
-파일 이름
이것은 프로그램의 파일 이름을 제거합니다. 이것은 정말 오래된 것을 혼동시킬 수 있습니다
디컴파일러이지만 최신 버전에는 아무 것도 아닙니다.
-참조되지 않음
참조되지 않은 변수의 항목을 제거합니다. 잘 차이가 없다.
유지 코드.
-중복 온도
임시 항목을 겹쳐서 pr_globals 수를 최적화합니다. QC에서는 모든
일반적으로 곱셈, 나눗셈 또는 연산은 임시 변수를 생성합니다.
이 최적화는 초과를 방지하고 Hexen2의 게임 코드의 경우
50k로 계산합니다. 이것은 가장 중요한 최적화입니다.
-정수
5*6은 실제로 progs에 작업을 내보냅니다. 이런 일이 일어나지 않도록 하고,
컴파일러가 30을 볼 수 있도록 효과적으로 만들기
-오프레캐시_파일
precache_file에 대한 함수 호출 및 문자열에 사용된 낭비되는 것을 제거합니다.
내장(실제로는 지진의 스텁임).
-Oreturn_only
return 문으로 끝나는 함수는 끝에 done 문이 필요하지 않습니다.
함수. 이것은 일부 디컴파일러를 혼동하여 함수를 더 크게 보이게 할 수 있습니다.
그들보다.
-Ocompound_jumps
이 최적화는 대부분 중첩된 if/else 문에서 효과를 발휘합니다.
무조건 점프문으로 점프하면 최종 목적지로 점프한다.
대신에. 이것은 디컴파일러를 어리둥절하게 만들 것입니다.
-Ostrip_functions
직접적으로만 호출된 함수의 'defs'를 제거합니다. 이것은
저장된 게임에는 영향을 미치지 않습니다.
-Olocals_marshalling
pr_globals의 한 섹션에 모든 로컬을 저장합니다. 대폭 줄입니다. 이것
오버랩 템의 작업을 효과적으로 수행합니다. 몇몇 사람들에게 버그가 있는 것으로 나타났습니다.
그러나 문제를 일으키는 상황은 아직 알려지지 않았습니다.
-오벡터칼
벡터만 사용하여 함수를 호출하는 경우 함수 호출이 다음과 같이 수행됩니다.
하나의 벡터 대신 세 개의 부동 소수점을 저장합니다. 이것은 많은 pr_globals를 저장할 수 있습니다.
여기서 이러한 벡터에는 많은 중복 좌표가 포함되지만 완전히 일치하지는 않습니다.
onworks.net 서비스를 사용하여 fteqcc 온라인 사용