模块 Config

module Config: sig .. end

系统配置

警告:此模块不稳定,属于 compiler-libs 的一部分。


val version : string

系统的当前版本号

val bindir : string

包含二进制程序的目录

val standard_library : string

包含标准库的目录

val ccomp_type : string

使用的 C 编译器、汇编器和链接器的“类型”:其中之一是“cc”(用于 Unix 风格的 C 编译器)“msvc”(用于 Microsoft Visual C++ 和 MASM)

val c_compiler : string

用于编译 C 文件的编译器

val c_output_obj : string

C 编译器用于指定输出文件的选项名称

val c_has_debug_prefix_map : bool

C 编译器是否支持 -fdebug-prefix-map

val as_has_debug_prefix_map : bool

汇编器是否支持 --debug-prefix-map

val ocamlc_cflags : string

ocamlc 应该传递给 C 编译器的标志

val ocamlc_cppflags : string

ocamlc 应该传递给 C 预处理器的标志

val ocamlopt_cflags : string
已弃用。 Config.ocamlc_cflags 应该改用。ocamlopt 应该传递给 C 编译器的标志
val ocamlopt_cppflags : string
已弃用。 Config.ocamlc_cppflags 应该改用。ocamlopt 应该传递给 C 预处理器的标志
val bytecomp_c_libraries : string

用于链接自定义运行时的 C 库

val native_c_libraries : string

用于链接本地代码程序的 C 库

val native_ldflags : string
val native_pack_linker : string

用于打包(ocamlopt -pack)和部分链接(ocamlopt -output-obj)的链接器。

val mkdll : string

用于构建动态库的链接器命令行。

val mkexe : string

用于构建可执行文件的链接器命令行。

val mkmaindll : string

用于将主程序构建为 dll 的链接器命令行。

val default_rpath : string

将目录添加到运行时库搜索路径的选项(由 ocamlmklib 使用)

val mksharedlibrpath : string

将目录添加到运行时共享库搜索路径的选项(由 ocamlmklib 使用)

val ar : string

ar 命令的名称,如果不需要则为空(MSVC)

val interface_suffix : string ref

接口文件名后缀

val exec_magic_number : string

字节码可执行文件的魔数

val cmi_magic_number : string

已编译接口文件的魔数

val cmo_magic_number : string

对象字节码文件的魔数

val cma_magic_number : string

存档文件的魔数

val cmx_magic_number : string

编译单元描述的魔数

val cmxa_magic_number : string

编译单元描述库的魔数

val ast_intf_magic_number : string

保存接口语法树的文件的魔数

val ast_impl_magic_number : string

保存实现语法树的文件的魔数

val cmxs_magic_number : string

动态加载插件的魔数

val cmt_magic_number : string

已编译接口文件的魔数

val linear_magic_number : string

线性内部表示文件的魔数

val max_tag : int

可以存储在常规块标头中的最大标记。

val lazy_tag : int

通常与 Obj.lazy_tag 相同。由于引导的原因而单独定义。

val max_young_wosize : int

直接在次要堆中分配的数组的最大大小

val stack_threshold : int

VM 栈底部安全区域的大小(以字为单位),请参阅 runtime/caml/config.h

val stack_safety_margin : int

栈底部与栈指针之间安全边界的字大小。此边界可用于某些指令的中间计算或事件处理程序。

val native_compiler : bool

本地编译器是否可用

val architecture : string

本地代码编译器的处理器类型名称

val model : string

本地代码编译器的处理器子模型名称

val system : string

本地代码编译器的操作系统名称

val asm : string

用于汇编 ocamlopt 生成的代码的汇编器(和标志)。

val asm_cfi_supported : bool

汇编器是否理解 CFI 指令

val with_frame_pointers : bool

汇编器是否应该维护帧指针

val ext_obj : string

目标文件扩展名,例如 Unix 下的 .o

val ext_asm : string

汇编文件扩展名,例如 Unix 下的 .s

val ext_lib : string

库文件扩展名,例如 Unix 下的 .a

val ext_dll : string

动态加载库的扩展名,例如 Unix 下的 .so

val ext_exe : string

可执行程序扩展名,例如 Windows 下的 .exe

val default_executable_name : string

链接时未使用 -o 指定的可执行程序名称,例如 Unix 下的 a.out

val systhread_supported : bool

系统线程库是否已实现

val flexdll_dirs : string list

FlexDLL 对象所需的目录

val host : string

编译器是否为交叉编译器

val target : string

编译器是否为交叉编译器

val flambda : bool

编译器是否为 flambda 配置

val with_flambda_invariants : bool

是否为 flambda 启用不变式检查

val with_cmm_invariants : bool

是否为 Cmm 启用不变式检查

val reserved_header_bits : int

块标头保留了多少位

val flat_float_array : bool

编译器和运行时是否会自动展平浮点数组

val function_sections : bool

编译器是否配置为在单独的节中生成每个函数

val windows_unicode : bool

是否启用了 Windows Unicode 运行时

val naked_pointers : bool

运行时是否支持裸指针

val supports_shared_libraries : bool

是否支持共享库

val native_dynlink : bool

是否支持本地共享库

val afl_instrument : bool

是否默认生成 afl-fuzz 检测

val ar_supports_response_files : bool

ar 是否支持 @FILE 参数。

val tsan : bool

是否启用了 ThreadSanitizer 检测

val print_config : out_channel -> unit

访问配置值

val config_var : string -> string option

变量的配置值(如果存在)