mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-17 21:12:42 +00:00
manual: documents changes regarding dynlib (#13425)
* manual: documents changes regarding dynlib Closes #13416 * manual: clean up sentence phrasing
This commit is contained in:
@@ -32,7 +32,9 @@
|
||||
- Implicit conversions for `const` behave correctly now, meaning that code like
|
||||
`const SOMECONST = 0.int; procThatTakesInt32(SOMECONST)` will be illegal now.
|
||||
Simply write `const SOMECONST = 0` instead.
|
||||
|
||||
- The `{.dynlib.}` pragma is now required for exporting symbols when making
|
||||
shared objects on POSIX and macOS, which make it consistent with the behavior
|
||||
on Windows.
|
||||
|
||||
|
||||
## Library additions
|
||||
|
||||
@@ -7224,6 +7224,9 @@ The string literal passed to ``exportc`` can be a format string:
|
||||
In the example the external name of ``p`` is set to ``prefixp``. Only ``$1``
|
||||
is available and a literal dollar sign must be written as ``$$``.
|
||||
|
||||
If the symbol should also be exported to a dynamic library, the ``dynlib``
|
||||
pragma should be used in addition to the ``exportc`` pragma. See
|
||||
`Dynlib pragma for export <#foreign-function-interface-dynlib-pragma-for-export>`_.
|
||||
|
||||
|
||||
Extern pragma
|
||||
@@ -7363,10 +7366,7 @@ conjunction with the ``exportc`` pragma:
|
||||
proc exportme(): int {.cdecl, exportc, dynlib.}
|
||||
|
||||
This is only useful if the program is compiled as a dynamic library via the
|
||||
``--app:lib`` command line option. This pragma only has an effect for the code
|
||||
generation on the Windows target, so when this pragma is forgotten and the dynamic
|
||||
library is only tested on Mac and/or Linux, there won't be an error. On Windows
|
||||
this pragma adds ``__declspec(dllexport)`` to the function declaration.
|
||||
``--app:lib`` command line option.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user