如何将Qt库连接到标准C ++项目?

时间:2016-03-24 10:54:41

标签: c++ linux qt gcc

我在Linux Mint上工作,我在Eclipse IDE中创建了标准C ++项目。我想用Qt库编写一些GUI应用程序,但我不太清楚如何附加库。

对于GCC C ++编译器,有标志: -I(包含头文件的路径,如果我理解正确的话,编译器会在搜索-include标志指定的头文件时查看这些目录) -include(实际的头文件)

对于GCC C ++链接器: -l(库,例如* .so库) -L(库搜索路径,链接器在查找-l标志指定的库时将查看这些目录)

这是对的吗?

现在...

/usr/lib $ ls | grep qt
The output is:
libindicate-qt.so.1
libindicate-qt.so.1.4.1
libntrack-qt4.so.1
libntrack-qt4.so.1.0.1
libpolkit-qt-agent-1.so.1
libpolkit-qt-agent-1.so.1.103.0
libpolkit-qt-core-1.so.1
libpolkit-qt-core-1.so.1.103.0
libpolkit-qt-gui-1.so.1
libpolkit-qt-gui-1.so.1.103.0
libsignon-qt5.so.1
libsignon-qt5.so.1.0
libsignon-qt5.so.1.0.0
libsignon-qt.so.1
libsignon-qt.so.1.0
libsignon-qt.so.1.0.0
libsvnqt.so.7
libsvnqt.so.7.0.1

并且在目录/ usr / include / qt5中有多个其他目录,每个目录都有一些头文件,例如:

/usr/include/qt5/QtConcurrent $ ls
QtConcurrent                qtconcurrentfilter.h            QtConcurrentMap             QtConcurrentRun                   QtConcurrentVersion
qtconcurrentcompilertest.h  qtconcurrentfilterkernel.h      qtconcurrentmap.h           qtconcurrentrunbase.h             qtconcurrentversion.h
QtConcurrentDepends         qtconcurrentfunctionwrappers.h  qtconcurrentmapkernel.h     qtconcurrentrun.h
qtconcurrentexception.h     qtconcurrent_global.h           qtconcurrentmedian.h        qtconcurrentstoredfunctioncall.h
QtConcurrentFilter          qtconcurrentiteratekernel.h     qtconcurrentreducekernel.h  qtconcurrentthreadengine.h

我的问题是如何包含标题和库。我想在/ usr / include / qt5 /以及/ usr / lib中的所有Qt库中包含所有标题。

换句话说..每个标志后面应该跟着什么字符串: -I,-include,-l,-L?

提前致谢。希望这个问题有道理。

1 个答案:

答案 0 :(得分:1)

编译Qt项目需要运行preprocessor moc来转换所有Qt信号/插槽。此预处理器可以由qmakecmake运行。从Qt no longer maintains a plugin for Eclipse开始,如果你真的想使用Eclipse,你需要配置Eclipse以使用cmake,然后配置cmake来调用moc。 MalaKa已经为您提供了link about some documentation from Qt

但是,如果您要使用Qt进行开发,我强烈建议您放弃Eclipse,转而使用Qt Creator,这是一个很棒的IDE,并且具有调用qmake的内置机制。