Bonjour à tous,
Je souhaiterais exécuter sous linux un programme en C écrit par un pote sous windows. Ce programme fonctionne parfaitement sous windows.
J'ai un souci avec la macro PTHREAD_MUTEX_INITIALIZER : le compilateur met qu'une expression est attendu avant un {, mais il n'y a pas de { dans le code à ces lignes...
le retour de gcc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 bool sds_initialize(u16 local_port, u16 switch_port, const char *switch_name, u16 *_signals, u16 _nb_signals, u16 **_signals_ranges, u16 _nb_signals_ranges) { watchdog_monitoring = true; multithreaded_signal_processing = true; signal_callback_function = do_nothing; *restart_command = '\0'; restart_command_mutex = PTHREAD_MUTEX_INITIALIZER; //ligne 116 last_switch_signal_mutex = PTHREAD_MUTEX_INITIALIZER; //ligne 117 is_disposed_mutex = PTHREAD_MUTEX_INITIALIZER; //ligne 118 __is_disposed = false; nb_signals = _nb_signals; signals = _signals; nb_signals_ranges = _nb_signals_ranges; signals_ranges = _signals_ranges; last_switch_signal.tv_sec = 0; last_switch_signal.tv_usec = 0; Entity server; if (4 + 2 * nb_signals + 4 * nb_signals_ranges > SIGNAL_DATA_MAX_SIZE) return true; if (initialize_enregistrement_signal()) return true; if (entity_initialize(&server, switch_port, switch_name)) return true; if (signal_initialise_client(local_port, server)) return true; return false; }
Merci d'avance pour votre aide.sds_process.c: In function ‘sds_initialize’:
sds_process.c:116: error: expected expression before ‘{’ token
sds_process.c:117: error: expected expression before ‘{’ token
sds_process.c:118: error: expected expression before ‘{’ token
Autre question pendant qu'on y est : un warning apparait disant que usleep est déclaré implicitement alors que la bibliothèque unistd.h est bien inclue, est-ce que vous voyez ce qui se passe ?
Partager