模块 Config_main

module Config_main: 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_main.ocamlc_cflags 应改用。ocamlopt 应传递给 C 编译器的标志
val ocamlopt_cppflags : string
已弃用。 Config_main.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

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