使用MySQL和Qt在程序中增加宏观混淆不匹配

时间:2013-03-02 17:02:01

标签: c++ qt boost mysql-connector

我正在使用使用boost的MySQL Connecter / C ++在Qt 5中创建一个程序。 我创建了一个类,它使弹出窗口从数据库中选择一些东西,当我尝试编译它时,我得到了

boost/mpl/not.hpp(47): Error: Macro argument mismatch.

这是这个类的代码

#include <QDialog>
#include "dbConnection.hpp"
using namespace std;
namespace Ui {
class selectClass;
}

class selectClass : public QDialog
{
    Q_OBJECT

public:
    explicit selectClass(QWidget *parent , dbConnection *conArg, int *textIdArg);
    ~selectClass();

private slots:
    void on_okButton_clicked();

private:
    Ui::selectClass *ui;
    vector<int> textIds;
    int *textId;
    dbConnection *con;
};

以下是方法

#include <vector>
#include <utility>
#include <string>
#include "selectclass.h"
#include "ui_selectclass.h"
using namespace std;

selectClass::selectClass(QWidget *parent,dbConnection *conArg,int *textIdArg) :
    QDialog(parent),
    ui(new Ui::selectClass)
{
    ui->setupUi(this);
    textId = textIdArg;
    con = conArg;
    vector< pair<string,int> > texts /*= con->getTexts()*/;
    for(int i=0;i<texts.size();++i){
        textIds.push_back(texts[i].second);
        ui->texts->addItem(NULL,tr(texts[i].first.c_str()));
    }
}

selectClass::~selectClass()
{
    delete ui;
}

void selectClass::on_okButton_clicked()
{
    *textId = textIds[ui->texts->currentIndex()];

}

这是我的编译器输出

20:24:50: Uruchamianie kroków budowania dla projektu Recorder...
20:24:50: Konfiguracja niezmieniona, krok qmake opuszczony.
20:24:50: Uruchamianie "C:\Qt\Qt5.0.1\Tools\QtCreator\bin\jom.exe" 
    C:\Qt\Qt5.0.1\Tools\QtCreator\bin\jom.exe -f Makefile.Debug
    C:\Qt\Qt5.0.1\5.0.1\msvc2010\bin\moc.exe -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I"C:\mysqlcpp\include" -I"D:\portaudio\include" -I"D:\boost_1_53_0" -I"D:\portaudio\build\msvc\Win32\Release" -I"..\faac-1.28\include" -I"..\libogg-1.3.0\include" -I"..\libvorbis-1.3.3\include" -I"C:\Qt\Qt5.0.1\5.0.1\msvc2010\include" -I"C:\Qt\Qt5.0.1\5.0.1\msvc2010\include\QtWidgets" -I"C:\Qt\Qt5.0.1\5.0.1\msvc2010\include\QtXml" -I"C:\Qt\Qt5.0.1\5.0.1\msvc2010\include\QtGui" -I"C:\Qt\Qt5.0.1\5.0.1\msvc2010\include\QtCore" -I"debug" -I"." -I"." -I"C:\Qt\Qt5.0.1\5.0.1\msvc2010\mkspecs\win32-msvc2010" -D_MSC_VER=1600 -DWIN32 ..\Recorder\selectclass.h -o debug\moc_selectclass.cpp
D:/boost_1_53_0/boost/mpl/not.hpp(47): Error: Macro argument mismatch.
jom: F:\Recorder-build-Desktop_Qt_5_0_1_MSVC2010_32bit-Debug\Makefile.Debug [debug\moc_selectclass.cpp] Error 1
jom: F:\Recorder-build-Desktop_Qt_5_0_1_MSVC2010_32bit-Debug\Makefile [debug] Error 2
20:24:54: Proces "C:\Qt\Qt5.0.1\Tools\QtCreator\bin\jom.exe" zakończył się kodem wyjściowym 2.
Error while building/deploying project Recorder (kit: Desktop Qt 5.0.1 MSVC2010 32bit)
Podczas wykonywania kroku "Make"

0 个答案:

没有答案