我在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?
提前致谢。希望这个问题有道理。
答案 0 :(得分:1)
编译Qt项目需要运行preprocessor moc
来转换所有Qt信号/插槽。此预处理器可以由qmake
或cmake
运行。从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的内置机制。