Action Principale : addPrototypes
| 1 | PROC CAS; |
| 2 | /* Étape 1: Créer le code source C */ |
| 3 | RUN; |
| 4 | %let c_code = " |
| 5 | #include <stdio.h> |
| 6 | #include <string.h> |
| 7 | #include <stdlib.h> |
| 8 | |
| 9 | /* Fonction pour additionner deux entiers */ |
| 10 | int myadd(int a, int b) { |
| 11 | return a + b; |
| 12 | } |
| 13 | |
| 14 | /* Fonction pour concaténer une chaîne avec un entier */ |
| 15 | char* mystring(char* str, int num) { |
| 16 | char* result = malloc(100); |
| 17 | sprintf(result, \"%s-%d\", str, num); |
| 18 | return result; |
| 19 | } |
| 20 | "; |
| 21 | |
| 22 | /* Étape 2: Écrire le code C dans un fichier sur le serveur */ |
| 23 | DATA _null_; |
| 24 | file '/tmp/myfuncs.c'; |
| 25 | put &c_code.; |
| 26 | RUN; |
| 27 | |
| 28 | /* Étape 3: Compiler le code C en bibliothèque partagée (.so) */ |
| 29 | PROC CAS; |
| 30 | SESSION casauto; |
| 31 | system "gcc -shared -o /tmp/myfuncs.so -fPIC /tmp/myfuncs.c"; |
| 32 | QUIT; |
| 33 |