Je compile sous Windows en utilisant gcc. J'ai l'erreur suivante dans une bibliothèque nommée 'Edje' :
lib/edje/edje_callbacks.c:436:3: error: initializer element is not constant
lib/edje/edje_callbacks.c:436:3: error: (near initialization for 'edje_callbacks[0].desc')
le code en question est :
la ligne 436 est la ligne du premier élément du tableau ci-dessus. Évidemment, l'erreur a lieu pour tous les éléments de ce tableau (sauf le dernier...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 static Eo_Callback_Array_Item edje_callbacks[] = { { EVAS_OBJECT_EVENT_HOLD, _edje_hold_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_IN, _edje_mouse_in_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_OUT, _edje_mouse_out_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_DOWN, _edje_mouse_down_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_UP, _edje_mouse_up_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_MOVE, _edje_mouse_move_signal_cb }, { EVAS_OBJECT_EVENT_MOUSE_WHEEL, _edje_mouse_wheel_signal_cb }, { NULL, NULL } };
la structure Eo_Callback_Array_Item est définie dans une bibliothèque nommée 'Eo' :
_edje_hold_signal_cb est une fonction définie comme il faut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct _Eo_Callback_Array_Item { const Eo_Event_Description *desc; /**< The event description. */ Eo_Event_Cb func; /**< The callback function. */ };
Le problème semble être EVAS_OBJECT_EVENT_HOLD. Celui-ci est défini dans une 3ème bibliothèque nommée 'Evas' :
Je précise que EAPI est défini à __declspec(dllimport)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 EAPI extern const Eo_Event_Description _EVAS_OBJECT_EVENT_HOLD; ... #define EVAS_OBJECT_EVENT_HOLD (&(_EVAS_OBJECT_EVENT_HOLD))
quelqu'un peut-il m'expliquer d'où vient l'erreur, ainsi que sa correction ?
merci
Partager