pragma 编译指示

pragma 编译指示可以用来声明用户定义的编译指示。这是有用的,因为 Nim 的模板和宏不会影响编译指示。用户定义的编译指示处于与所有其他符号都不同的模块作用域。它们不能从模块中导入。

示例:

  1. when appType == "lib":
  2. {.pragma: rtl, exportc, dynlib, cdecl.}
  3. else:
  4. {.pragma: rtl, importc, dynlib: "client.dll", cdecl.}
  5. proc p*(a, b: int): int {.rtl.} =
  6. result = a + b

在这个例子中,引入了一个名为 rtl 的新编译指示,它表示要么从动态库中导入符号,要么为生成动态库而导出符号。