In buona sostanza puoi usare le direttive di compilazione condizionale.
Qualcosa del genere:
lib1.h:
Quello sopra è l'header file di una libreria(dinamyc linking library, .dll, su windows; shared library, .so, su Linux) che esporta la funzione somma.codice:#ifndef MY_LIB1_H #define MY_LIB1_H #if defined _WIN32 || defined __CYGWIN__ #ifdef MYDLL_EXPORTS #define MYDLL_API __declspec(dllexport) #else #define MYDLL_API __declspec(dllimport) #endif #else #if __GNUC__ >= 4 #define MYDLL_API __attribute__ ((visibility ("default"))) #else #define MYDLL_API #endif #endif #ifdef __cplusplus extern "C" { #endif MYDLL_API int somma(int x, int y); #ifdef __cplusplus } #endif #endif /* MY_LIB1_H */
lib1.c:
codice:#include <stdio.h> #include <stdlib.h> #define MYDLL_EXPORTS #include "lib1.h" MYDLL_API int somma(int x, int y) { return x + y; }![]()

Rispondi quotando