# Compilation C/C++ à la volée

Compiler du code C/C++ à la volée

## 📄 Description

Nelson fournit un outil multiplateforme en ligne de commande, écrit en Nelson, pour compiler des modules natifs (addons).

Il simplifie les différences entre plateformes de compilation et facilite la construction d'extensions natives.

## 💡 Exemple

```matlab

if ispc() && ~havecompiler()
configuremsvc()
end
C_CONTENT = ["double";
"functionC(double x)";
"{";
"    return x + 8;";
"}"];
DEST_DIR = [tempdir(), 'example_C'];
mkdir(DEST_DIR);
C_DEST_FILE = [tempdir(), 'example_C/demo.c'];
filewrite(C_DEST_FILE, C_CONTENT)

dlgeneratemake(DEST_DIR, 'C_DEMO', {C_DEST_FILE}, {DEST_DIR})
[res, message] = dlmake(DEST_DIR)

lib = dlopen([DEST_DIR, '/C_DEMO', getdynlibext()])
c = dllibinfo(lib)

f = dlsym(lib, 'functionC', 'double', {'double'});
R = dlcall(f, 3) % 8 + 3
dlclose(lib)

```

![](broken-reference)

## 🔗 Voir aussi

[configuremsvc](https://nelson-9.gitbook.io/Nelson/markdown/fr/dynamic_link/configuremsvc), [dlgeneratemake](https://nelson-9.gitbook.io/Nelson/markdown/fr/dynamic_link/dlgeneratemake), [dlmake](https://nelson-9.gitbook.io/Nelson/markdown/fr/dynamic_link/dlmake), [dlopen](https://nelson-9.gitbook.io/Nelson/markdown/fr/dynamic_link/dlopen), [dllibinfo](https://nelson-9.gitbook.io/Nelson/markdown/fr/dynamic_link/dllibinfo), [dlsym](https://nelson-9.gitbook.io/Nelson/markdown/fr/dynamic_link/dlsym), [dlcall](https://nelson-9.gitbook.io/Nelson/markdown/fr/dynamic_link/dlcall).

## 🕔 Historique

| Version | 📄 Description   |
| ------- | ---------------- |
| 1.2.0   | version initiale |
