LINUX.ORG.RU

ошибка при компиляции в с++

 ,


0

2

компилирую примерчик cordova. после того как подключаю плугин камеры получаю ошибку компиляции

$ /usr/local/bin/cordova run ubuntu
Running command: /home/yurau1510/work/cordova/hello/platforms/ubuntu/cordova/run 
Building...
make -j 2; make install FAILED
[  5%] Automatic moc for target cordovaubuntuplugin
[ 11%] Automatic moc for target cordova-ubuntu
[ 11%] Built target cordovaubuntuplugin_automoc
[ 17%] [ 17%] Automatic moc for target coreplugins
Built target cordova-ubuntu_automoc
[ 17%] Built target coreplugins_automoc
[ 52%] Built target cordovaubuntuplugin
[ 70%] Built target copy_wwwqmlxml
[ 76%] Building CXX object CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o
[ 88%] Built target cordova-ubuntu
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp: In function ‘QList<QSharedPointer<CPlugin> > cordovaGetPluginInstances(Cordova*)’:
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:66: error: expected primary-expression before ‘(’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                  ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:85: error: expected primary-expression before ‘)’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                                     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
CMakeFiles/coreplugins.dir/build.make:54: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o»
make[2]: *** [CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o] Ошибка 1
CMakeFiles/Makefile2:226: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/all»
make[1]: *** [CMakeFiles/coreplugins.dir/all] Ошибка 2
Makefile:116: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
[  5%] Automatic moc for target cordovaubuntuplugin
[  5%] Built target cordovaubuntuplugin_automoc
[ 41%] Built target cordovaubuntuplugin
[ 58%] Built target copy_wwwqmlxml
[ 64%] Automatic moc for target cordova-ubuntu
[ 64%] Built target cordova-ubuntu_automoc
[ 76%] Built target cordova-ubuntu
[ 82%] Automatic moc for target coreplugins
[ 82%] Built target coreplugins_automoc
[ 88%] Building CXX object CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp: In function ‘QList<QSharedPointer<CPlugin> > cordovaGetPluginInstances(Cordova*)’:
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:66: error: expected primary-expression before ‘(’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                  ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:85: error: expected primary-expression before ‘)’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                                     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
CMakeFiles/coreplugins.dir/build.make:54: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o»
make[2]: *** [CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o] Ошибка 1
CMakeFiles/Makefile2:226: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/all»
make[1]: *** [CMakeFiles/coreplugins.dir/all] Ошибка 2
Makefile:116: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2

Try running the task again with --verbose for more logs.
Example: cordova run -- --verbose
ERROR running one or more of the platforms: Error: /home/yurau1510/work/cordova/hello/platforms/ubuntu/cordova/run: Command failed with exit code 1
You may not have the required environment or OS to run this project
вот сам файл в котором происходит ошибка coreplugins.cpp
/*
 *
 * Copyright 2013 Canonical Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
*/
#include <QtCore>
#include "cplugin.h"
#include "coreplugins.h"
#include "cordova.h"


#include "plugins/cordova-plugin-camera/camera.h"

#define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));

extern "C" {

Q_DECL_EXPORT QList<QSharedPointer<CPlugin>> cordovaGetPluginInstances(Cordova *) {
    QList<QSharedPointer<CPlugin>> res;

    INIT_PLUGIN(Camera);


    return res;
}

}
Где тут ошибкa?

Похоже, что препроцессор не хочет раскрывать ключевое слово class. Переименуй в той строке с #define слово class в какой-нибудь clazz (3 раза).

Legioner ★★★★★ ()