EnglishFrenchSpanish

Ad


OnWorks favicon

moc-qt4 - Online in the Cloud

Run moc-qt4 in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command moc-qt4 that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


moc - generate Qt meta object support code

SYNOPSIS


moc [-o file] [-i] [-f] [-k] [-ldbg] [-nw] [-p path] [-q path] [-v] file

DESCRIPTION


This page documents the Meta Object Compiler for the Qt GUI application framework. The moc
reads one or more C++ class declarations from a C++ header or source file and generates
one C++ source file containing meta object information for the classes. The C++ source
file generated by the moc must be compiled and linked with the implementation of the class
(or it can be #included into the class's source file).

If you use qmake to create your Makefiles, build rules will be included that call the moc
when required, so you will not need to use the moc directly.

In brief, the meta object system is a structure used by Qt (see http://doc.trolltech.com)
for component programming and run time type information. It adds properties and
inheritance information to (some) classes and provides a new type of communication between
those instances of those classes, signal-slot connections.

OPTIONS


-o file
Write output to file rather than to stdout.

-f Force the generation of an #include statement in the output. This is the default
for files whose name matches the regular expression .[hH][^.]* (i.e. the extension
starts with H or h ). This option is only useful if you have header files that do
not follow the standard naming conventions.

-i Do not generate an #include statement in the output. This may be used to run moc
on a C++ file containing one or more class declarations. You should then #include
the meta object code in the .cpp file (see USAGE below). If both -f and -i are
present, the last one wins.

-nw Do not generate any warnings. Not recommended.

-ldbg Write a flood of lex debug information to stdout.

-p path
Makes moc prepend path/ to the file name in the generated #include statement (if
one is generated).

-q path
Makes moc prepend path/ to the file name of qt #include files in the generated
code.

-v Displays the version of moc and Qt.

You can explicitly tell the moc not to parse parts of a header file. It recognizes any C++
comment (//) that contains the substrings MOC_SKIP_BEGIN or MOC_SKIP_END. They work as you
would expect and you can have several levels of them. The net result as seen by the moc is
as if you had removed all lines between a MOC_SKIP_BEGIN and a MOC_SKIP_END

USAGE


moc is almost always invoked by make(1), not by hand.

moc is typically used with an input file containing class declarations like this:

class YourClass : public QObject {
Q_OBJECT
Q_PROPERTY( ... )
Q_CLASSINFO( ... )

public:
YourClass( QObject * parent=0, const char * name=0 );
~YourClass();

signals:

public slots:

};

Here is a useful makefile rule if you only use GNU make:

m%.cpp: %.h
moc $< -o $@

If you want to write portably, you can use individual rules of the following form:

mNAME.cpp: NAME.h
moc $< -o $@

You must also remember to add mNAME.cpp to your SOURCES (substitute your favorite name)
variable and mNAME.o to your OBJECTS variable.

(While we prefer to name our C++ source files .cpp, the moc doesn't know that, so you can
use .C, .cc, .CC, .cxx or even .c++ if you prefer.)

If you have class declarations in C++ files, we recommend that you use a makefile rule
like this:

NAME.o: mNAME.cpp

mNAME.cpp: NAME.cpp
moc -i $< -o $@

This guarantees that make(1) will run the moc before it compiles NAME.cpp. You can then
put

#include "nNAME.cpp"

at the end of NAME.cpp, where all the classes declared in that file are fully known.

DIAGNOSTICS


Sometimes you may get linkage errors, saying that YourClass::className() is undefined or
that YourClass lacks a vtbl. Those errors happen most often when you forget to compile
the moc-generated C++ code or include that object file in the link command.

The moc will warn you about a number of dangerous or illegal constructs.

Use moc-qt4 online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    VASSAL Engine
    VASSAL Engine
    VASSAL is a game engine for creating
    electronic versions of traditional board
    and card games. It provides support for
    game piece rendering and interaction,
    and...
    Download VASSAL Engine
  • 2
    OpenPDF - Fork of iText
    OpenPDF - Fork of iText
    OpenPDF is a Java library for creating
    and editing PDF files with a LGPL and
    MPL open source license. OpenPDF is the
    LGPL/MPL open source successor of iText,
    a...
    Download OpenPDF - Fork of iText
  • 3
    SAGA GIS
    SAGA GIS
    SAGA - System for Automated
    Geoscientific Analyses - is a Geographic
    Information System (GIS) software with
    immense capabilities for geodata
    processing and ana...
    Download SAGA GIS
  • 4
    Toolbox for Java/JTOpen
    Toolbox for Java/JTOpen
    The IBM Toolbox for Java / JTOpen is a
    library of Java classes supporting the
    client/server and internet programming
    models to a system running OS/400,
    i5/OS, o...
    Download Toolbox for Java/JTOpen
  • 5
    D3.js
    D3.js
    D3.js (or D3 for Data-Driven Documents)
    is a JavaScript library that allows you
    to produce dynamic, interactive data
    visualizations in web browsers. With D3
    you...
    Download D3.js
  • 6
    Shadowsocks
    Shadowsocks
    A fast tunnel proxy that helps you
    bypass firewalls This is an application
    that can also be fetched from
    https://sourceforge.net/projects/shadowsocksgui/.
    It ha...
    Download Shadowsocks
  • More »

Linux commands

Ad