QT posix message queue
-
@jsulm #include "mainwindow.h"
#include "ui_mainwindow.h"
#include <Mqueue.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
mqd_t mqid;
mqid=mq_open("/hmi_chnl_ic",O_RDONLY);
if(mqid==-1)
{
QDebug()<<"error opening message queue";
}
}
this is the sample code..please forgive me if i'm asking anything stupid.And please do tell me where do ineed to add mqueue.h to get that in my program. -
@jish said in QT posix message queue:
#include <Mqueue.h>
it must be
#include <mqueue.h>
You need to include it where you want to use it. Where it is depends on your design.
-
@jish "mqueue.h is also not working" - if you say something is not working you should always say what exactly is not working...
I already asked you two times whether you have this header file in your system. Can you please answer this question?"You need to include it where you want to use it???" - before you asked "And please do tell me where do ineed to add mqueue.h to get that in my program". Maybe I misunderstood your question. You do not need to add this header file to your project. You just use it - system headers files are never added to the project directly.
"i tried to include it with the headers in .pro file..but no use" - this is not needed! mqueue.h is usually already installed in your system (I guess you're using Linux?).
This simple program should compile:#include "mqueue.h" int main(void) { return 0; }
Does it compile if you do it like this:
g++ -o test_mqueue test_mqueue.cpp
?
-
@jsulm said in QT posix message queue:
find /usr -name mqueue.h
output
/usr/include/mqueue.h
/usr/include/x86_64-linux-gnu/bits/mqueue.h
/usr/include/linux/mqueue.h
/usr/src/linux-headers-3.13.0-24-generic/include/config/posix/mqueue.h
/usr/src/linux-headers-3.13.0-117/include/uapi/linux/mqueue.h
/usr/src/linux-headers-3.13.0-117-generic/include/config/posix/mqueue.h
/usr/src/linux-headers-3.13.0-24/include/uapi/linux/mqueue.h -
@jish This builds on my machine in QtCreator:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> #include <mqueue.h> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); mqd_t mqid; mqid=mq_open("/hmi_chnl_ic",O_RDONLY); if(mqid==-1) { qDebug()<<"error opening message queue"; } } MainWindow::~MainWindow() { delete ui; }
pro file:
#------------------------------------------------- # # Project created by QtCreator 2017-05-19T09:26:01 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = test_mqueue TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS LIBS += -lrt SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
You need to add -lrt to be able to link.