编译器选项:-z
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=CompilerOptz
- 最后更新: 2025-01-27
设置杂项或实验性编译器选项。
语法
-z <value>参数
value
杂项编译器选项。
描述
-z 编译器选项设置开发人员使用的杂项、晦涩、临时或实验性选项。不保证这些选项在未来版本的编译器中会被支持。
-z gosub-setjmp
指定即使使用 GAS 后端,也应使用 Gosub 的 setjmp/longjmp 实现。默认情况下,Gosub 在 -gen gas 中使用 CALL/RET 汇编指令支持,在 -gen gcc 中使用 setjmp/longjmp C 运行时函数支持。
-z valist-as-ptr
指定如果目标支持,可变参数过程的 cva_list 变量参数列表和宏的实现应使用普通指针类型。默认情况下,使用 -gen gcc 时,cva_list 数据类型映射到 gcc 的 __builtin_va_list 数据类型。
-z no-thiscall
指示 fbc 忽略源文件中的 __thiscall 指令。
-z no-fastcall
指示 fbc 忽略源文件中的 __fastcall 指令。
-z fbrt
指示 fbc 链接 libfbrt[mt].a 库而不是 libfb[mt].a 库,而无需复制或移动文件或维护多个开发目录。
-z nocmdline
指示 fbc 忽略源文件中的所有 cmdline 指令,并仅从实际的编译器命令行获取控制权。
-z retinflts
指示 fbc 启用在浮点寄存器中返回某些结构(类型)。
-z nobuiltins
指示 fbc 禁用所有内置声明和定义,但严格必要的除外(这些是编译器初始化到可以开始解析用户代码的工作状态所需的)。然后,用户代码必须提供 fbc 内部所需的所有必要声明和定义,以允许用户代码编译成功。请注意,使用此选项需要了解编译器的内部工作原理。对于实验和开发,这允许在 fb 用户代码中声明和定义几乎所有 fbc 内置项。实际需要的用户代码声明将取决于要编译的用户代码的内容。如果在 fbc 本身在解析用户源代码时需要它们之前尚未进行所需的支持声明或定义,fbc 预期会抛出错误(fbc 也可能崩溃)。
-z optabstract
指示 fbc 不发射未使用的纯抽象类型。
版本
- 自 fbc 1.20.0 起:
optabstract编译器选项 - 自 fbc 1.20.0 起:
nobuiltins编译器选项 - 自 fbc 1.10.0 起:
retinflts编译器选项 - 自 fbc 1.10.0 起:
no-fastcall编译器选项。 - 自 fbc 1.09.0 起:
nocmdline编译器选项 - 自 fbc 1.09.0 起:
fbrt编译器选项。 - 自 fbc 1.09.0 起:
no-thiscall编译器选项。 - 自 fbc 1.08.1 起:
valist-as-ptr编译器选项。 - 自 fbc 0.20.0 起:
gosub-setjmp编译器选项。
另请参阅
返回 目录