这是 fteqcc 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
fteqcc - FTE QuakeC 编译器
概要
福泰克 [选项]
商品描述
本手册页简要记录了 福泰克 命令。
福泰克 是一个将 QuakeC 源代码编译为 Quake1 或
基于地震世界的游戏。
配置
- 帮帮我 显示选项摘要。
-Fautoproto
启用自动原型制作
-弗瓦斯姆 将所有汇编代码转储到 qc.asm
-K关键字, -Kno-关键字
打开或关闭语言关键字。 可用于切换的关键字有:asm、break、
案例、类、常量、继续、默认、实体、枚举、枚举标志、外部、浮点数、for、
goto、int、整数、noref、nosave、共享、状态、字符串、结构、开关、
thinktime、typedef、union、var 和 vector。
-O0, -O1, -O2, -O3,
使用 0 到 3 之间的优化级别。使用 0,不进行优化,其他
值包括或多或少部分中的选项 优化.
-src 目录
指定要在其中查找源文件 (progs.src) 的目录。
-墙 显示所有警告
FORMAT
福泰克 支持多种输出格式。
-T标准, -Tq1, -地震
这是默认设置并生成与原始 Quake1 兼容的代码。
-Thexen2, -Th2
输出 Hexen2 兼容代码。
-Tkkqwsv, -TK7, -Tbigprogs, -Tversion7, -Tkkqwsv
生成 KK 版本 7 兼容程序
-TFT 生成特定于 FTE Quake 的代码。
优化
以下选项可用于微调优化。 其中一些被激活
自动。
-O作业
c = a*b 在一个操作而不是两个操作中执行,并且可能导致更旧
反编译器失败。
-Oshortenifs
if (!a) 传统上是在两个语句中编译的。 这种优化在
一,但可能会导致一些反编译器混淆。
-ononvec_parms
在原始的 qcc 中,函数参数被指定为向量存储,即使对于
漂浮。 这解决了这个问题。
-Oconstant_names
从程序中删除常量的名称,从而生成更小的文件。 它
使反编译器省略名称或编造数字名称。
-Oconstant_name_strings
从程序中删除字符串常量的名称。 这会破坏插件,所以
在这些情况下不要使用它。
-Odupconstdefs
合并具有相同值的常量的定义。 特别注意
分配给不断的警告。
- 重复字符串
压缩存储在 prog 中的字符串表。 会大大
小了这个。
-本地人
去除本地名称和定义。 这使得反编译变得非常困难
-O函数名称
这会去除从未调用过的函数的名称。 没有多大作用
虽然有影响。
-文件名
这将删除 progs 的文件名。 这可能会混淆真正的旧
反编译器,但与最近的那些无关。
-未引用
删除未引用变量的条目。 没有什么区别
维护的代码。
-重叠时间
通过重叠临时变量优化 pr_globals 计数。 在 QC 中,每个
乘法、除法或运算一般会产生一个临时变量。
这种优化可以防止过度,在 Hexen2 的游戏代码的情况下,减少
计数为 50k。 这是有史以来最重要的优化。
-O常数算术
5*6 实际上向 progs 发出一个操作。 这可以防止这种情况发生,
有效地使编译器看到 30
-Oprecache_file
将函数调用和字符串中浪费的内容剥离到 precache_file
内置(实际上是地震中的存根)。
-Oreturn_only
以 return 语句结尾的函数在结束时不需要 done 语句
功能。 这可能会混淆一些反编译器,使函数显得更大
比他们。
-Ocompound_jumps
这种优化主要对嵌套的 if/else 语句起作用,而不是
跳转到无条件跳转语句,它将跳转到最终目的地
反而。 这将使反编译器感到困惑。
-Ostrip_函数
去掉那些只被直接调用过的函数的“定义”。 这确实
不影响保存的游戏。
-Olocals_marshalling
将所有本地变量存储在 pr_globals 的一个部分中。 大大减少它。 这个
有效地完成重叠时间的工作。 一些人注意到它有问题,
然而,它导致问题的姜黄素尚不清楚。
-Ovectorcals
在仅使用向量调用函数的情况下,这会导致函数调用
存储三个浮点数而不是一个向量。 这可以节省大量的 pr_globals
这些向量包含许多重复的坐标但不完全匹配。
使用 onworks.net 服务在线使用 fteqcc