我正在使用使用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"