manual: documents changes regarding dynlib (#13425)
* manual: documents changes regarding dynlib Closes #13416 * manual: clean up sentence phrasing
This commit is contained in:
parent
046bb0b881
commit
d1f9f11245
2 changed files with 7 additions and 5 deletions
|
|
@ -32,7 +32,9 @@
|
||||||
- Implicit conversions for `const` behave correctly now, meaning that code like
|
- Implicit conversions for `const` behave correctly now, meaning that code like
|
||||||
`const SOMECONST = 0.int; procThatTakesInt32(SOMECONST)` will be illegal now.
|
`const SOMECONST = 0.int; procThatTakesInt32(SOMECONST)` will be illegal now.
|
||||||
Simply write `const SOMECONST = 0` instead.
|
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
|
## 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``
|
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 ``$$``.
|
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
|
Extern pragma
|
||||||
|
|
@ -7363,10 +7366,7 @@ conjunction with the ``exportc`` pragma:
|
||||||
proc exportme(): int {.cdecl, exportc, dynlib.}
|
proc exportme(): int {.cdecl, exportc, dynlib.}
|
||||||
|
|
||||||
This is only useful if the program is compiled as a dynamic library via the
|
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
|
``--app:lib`` command line option.
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue