IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Erreur de compilation: missing braces


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut Erreur de compilation: missing braces
    Salut,

    Je suis confronté à cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./sipimgprocesscmodule.cpp:60:2: erreur: braces around scalar initializer for type ‘_sipExportedModuleDef*’
    lors de la compilation d'un module SIP.

    La source sipimgprocesscmodule.cpp est créée par SIP lui-même suivant un fichier de config, je n'y ai introduit strictement aucune modification.

    sipimgprocesscmodule.cpp
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
     
    /*
     * Module code.
     *
     * Generated by SIP 4.14.7-snapshot-c80745f8ee0b on Mon Jun 17 09:58:53 2013
     */
     
    #include "sipAPIimgprocess.h"
     
    #line 9 "imgprocess.sip"
    #include <imgprocess.h>
    #line 12 "./sipimgprocesscmodule.cpp"
     
    /* Define the strings used by this module. */
    const char sipStrings_imgprocess[] = {
        'a', 'p', 'p', 'l', 'y', 'C', 'o', 'n', 't', 'r', 'a', 's', 't', 'S', 't', 'r', 'e', 't', 'c', 'h', 'i', 'n', 'g', 0,
        'g', 'e', 't', 'C', 'o', 'l', 'o', 'r', 'H', 'i', 's', 't', 'o', 'g', 'r', 'a', 'm', 0,
        'l', 'o', 'a', 'd', 'C', 'o', 'l', 'o', 'r', 'I', 'm', 'a', 'g', 'e', 0,
        'I', 'm', 'g', 'P', 'r', 'o', 'c', 'e', 's', 's', 0,
        'i', 'm', 'g', 'p', 'r', 'o', 'c', 'e', 's', 's', 0,
    };
     
     
    /*
     * This defines each type in this module.
     */
    static sipTypeDef *typesTable[] = {
        &sipTypeDef_imgprocess_ImgProcess.ctd_base,
    };
     
     
    /* This defines this module. */
    sipExportedModuleDef sipModuleAPI_imgprocess = {
        0,
        SIP_API_MINOR_NR,
        sipNameNr_imgprocess,
        0,
        -1,
        sipStrings_imgprocess,
        NULL,
        NULL,
        1,
        typesTable,
        NULL,
        0,
        NULL,
        0,
        NULL,
        NULL,
        NULL,
        NULL,
        {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL},
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL
    };
     
     
    /* The SIP API and the APIs of any imported modules. */
    const sipAPIDef *sipAPI_imgprocess;
     
     
    /* The Python module initialisation function. */
    #if PY_MAJOR_VERSION >= 3
    #define SIP_MODULE_ENTRY        PyInit_imgprocess
    #define SIP_MODULE_TYPE         PyObject *
    #define SIP_MODULE_DISCARD(r)   Py_DECREF(r)
    #define SIP_MODULE_RETURN(r)    return (r)
    #else
    #define SIP_MODULE_ENTRY        initimgprocess
    #define SIP_MODULE_TYPE         void
    #define SIP_MODULE_DISCARD(r)
    #define SIP_MODULE_RETURN(r)    return
    #endif
     
    #if defined(SIP_STATIC_MODULE)
    extern "C" SIP_MODULE_TYPE SIP_MODULE_ENTRY()
    #else
    PyMODINIT_FUNC SIP_MODULE_ENTRY()
    #endif
    {
        static PyMethodDef sip_methods[] = {
            {0, 0, 0, 0}
        };
     
    #if PY_MAJOR_VERSION >= 3
        static PyModuleDef sip_module_def = {
            PyModuleDef_HEAD_INIT,
            "imgprocess",
            NULL,
            -1,
            sip_methods,
            NULL,
            NULL,
            NULL,
            NULL
        };
    #endif
     
        PyObject *sipModule, *sipModuleDict;
        PyObject *sip_sipmod, *sip_capiobj;
     
        /* Initialise the module and get it's dictionary. */
    #if PY_MAJOR_VERSION >= 3
        sipModule = PyModule_Create(&sip_module_def);
    #elif PY_VERSION_HEX >= 0x02050000
        sipModule = Py_InitModule(sipName_imgprocess, sip_methods);
    #else
        sipModule = Py_InitModule(const_cast<char *>(sipName_imgprocess), sip_methods);
    #endif
     
        if (sipModule == NULL)
            SIP_MODULE_RETURN(NULL);
     
        sipModuleDict = PyModule_GetDict(sipModule);
     
        /* Get the SIP module's API. */
    #if PY_VERSION_HEX >= 0x02050000
        sip_sipmod = PyImport_ImportModule(SIP_MODULE_NAME);
    #else
        sip_sipmod = PyImport_ImportModule(const_cast<char *>(SIP_MODULE_NAME));
    #endif
     
        if (sip_sipmod == NULL)
        {
            SIP_MODULE_DISCARD(sipModule);
            SIP_MODULE_RETURN(NULL);
        }
     
        sip_capiobj = PyDict_GetItemString(PyModule_GetDict(sip_sipmod), "_C_API");
        Py_DECREF(sip_sipmod);
     
    #if defined(SIP_USE_PYCAPSULE)
        if (sip_capiobj == NULL || !PyCapsule_CheckExact(sip_capiobj))
    #else
        if (sip_capiobj == NULL || !PyCObject_Check(sip_capiobj))
    #endif
        {
            SIP_MODULE_DISCARD(sipModule);
            SIP_MODULE_RETURN(NULL);
        }
     
    #if defined(SIP_USE_PYCAPSULE)
        sipAPI_imgprocess = reinterpret_cast<const sipAPIDef *>(PyCapsule_GetPointer(sip_capiobj, SIP_MODULE_NAME "._C_API"));
    #else
        sipAPI_imgprocess = reinterpret_cast<const sipAPIDef *>(PyCObject_AsVoidPtr(sip_capiobj));
    #endif
     
    #if defined(SIP_USE_PYCAPSULE)
        if (sipAPI_imgprocess == NULL)
        {
            SIP_MODULE_DISCARD(sipModule);
            SIP_MODULE_RETURN(NULL);
        }
    #endif
     
        /* Export the module and publish it's API. */
        if (sipExportModule(&sipModuleAPI_imgprocess,SIP_API_MAJOR_NR,SIP_API_MINOR_NR,0) < 0)
        {
            SIP_MODULE_DISCARD(sipModule);
            SIP_MODULE_RETURN(0);
        }
        /* Initialise the module now all its dependencies have been set up. */
        if (sipInitModule(&sipModuleAPI_imgprocess,sipModuleDict) < 0)
        {
            SIP_MODULE_DISCARD(sipModule);
            SIP_MODULE_RETURN(0);
        }
     
        SIP_MODULE_RETURN(sipModule);
    }
    Makefile
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    TARGET = imgprocess.so
    OFILES = sipimgprocesscmodule.o sipimgprocessImgProcess.o
    HFILES = sipAPIimgprocess.h 
     
    CC = gcc
    CXX = g++
    LINK = g++
    CPPFLAGS = -DNDEBUG -I. -I/usr/include/python2.7
    CFLAGS =  -O2 -g -fPIC -Wall -W 
    CXXFLAGS =  -O2 -g -fPIC -Wall -W
    LFLAGS = -shared -Wl,--version-script=imgprocess.exp
    LIBS = -L/usr/lib -L/usr/lib/x86_64-linux-gnu/ -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_contrib -lopencv_features2d -lopencv_ml -lopencv_gpu -limgprocess
    .SUFFIXES: .c .o .cpp .cc .cxx .C
     
     
    .cpp.o:
    	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
     
    .cc.o:
    	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
     
    .cxx.o:
    	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
     
    .C.o:
    	$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
     
    .c.o:
    	$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
     
    all: $(TARGET)
     
    $(OFILES): $(HFILES)
     
    $(TARGET): $(OFILES)
    	@echo '{ global: initimgprocess; local: *; };' > imgprocess.exp
    	$(LINK) $(LFLAGS) -o $(TARGET) $(OFILES) $(LIBS)
     
    install: $(TARGET)
    	@test -d $(DESTDIR)/usr/lib/python2.7/dist-packages || mkdir -p $(DESTDIR)/usr/lib/python2.7/dist-packages
    	cp -f $(TARGET) $(DESTDIR)/usr/lib/python2.7/dist-packages/$(TARGET)
     
    clean:
    	-rm -f $(TARGET)
    	-rm -f sipimgprocesscmodule.o
    	-rm -f sipimgprocessImgProcess.o
    	-rm -f imgprocess.exp
    Compile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    vincent@djoliba:~/oqapy-2/C++/exemples/imgprocess$ make
    g++ -c -O2 -g -fPIC -Wall -W -DNDEBUG -I. -I/usr/include/python2.7 -o sipimgprocesscmodule.o sipimgprocesscmodule.cpp
    ./sipimgprocesscmodule.cpp:60:1: attention : missing braces around initializer for ‘sipInstancesDef {aka _sipInstancesDef}[-Wmissing-braces]
    ./sipimgprocesscmodule.cpp:60:1: erreur: braces around scalar initializer for type ‘_sipVoidPtrInstanceDef*’
    make: *** [sipimgprocesscmodule.o] Erreur 1
    J'ai testé avec d'autres exemples, tous échouent aussi, alors que je n'avais aucun problème il y a deux semaines (il n'est pas impossible que j'aie eu une mise à jour de gcc depuis lors).

    En Googlant, on s'aperçoit que le cas est souvent cité.

    Sytème:
    Ubuntu 12.04
    SIP 4.14.7
    GCC 4.6.3

    Merci pour toutes idées.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Résolu avec la dernière release de SIP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo