Some more info. The error received on Onion is: ENOSYS : "Function not implemented" Compiling, linking and running the same application for Ubuntu 64 bit on VM works using the following: g++ *.cpp -Wall -lrt -v #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <mqueue.h> int main (int argc, char* argv[]) { mqd_t mq; struct mq_attr attr; // Initialize the queue attributes attr.mq_flags = 0; attr.mq_maxmsg = 50; attr.mq_msgsize = 2048; //MAX_SIZE; attr.mq_curmsgs = 0; // Create the message queue mq = mq_open("/mq", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR, &attr); if (((mqd_t)-1 == mq)) { int errnum = errno; printf("main(): Failed creating message Queue: %d, %s!\n", errnum, strerror(errnum)); exit(1); } // Cleanup Message Queue mq_close(mq); mq_unlink("/mq"); return 0; }