Eclipse CDT/Qt:有一个Qt Gui项目依赖于工作空间中的另一个c++项目

Eclipse CDT/Qt: have a Qt Gui project depend on another C++ project in the workspace

本文关键字:Qt 项目 空间 另一个 c++ 工作 依赖于 CDT 有一个 Gui Eclipse      更新时间:2023-10-16

我使用Eclipse/CDT在Eclipse c++项目("MyAlgorithm")中实现了一个相当复杂的算法。为了能够可视化算法的步骤,我想创建一个简单的Qt GUI。我已经下载并安装了Qt Eclipse集成,并创建了一个带有主窗口的Qt项目("MyGUI")。一切都按照它应该的方式编译——各个组件都就位了。

然而,当我尝试在MyGUI中使用MyAlgorithm中的类时,一切都停止了…虽然我在MyGUI中所有可能的对话框和我能想到的地方引用了MyAlgorithm[1],但构建项目仍然失败:

main.cpp:5:致命错误:MyAlgorithmClass.h: No such file or directory

我在MyGUI中引用MyAlgorithm的地方列表(所有在"MyGUI"的项目属性中):

  • C/c++ Include Paths and Symbols(使用"Add Include Path from Workspace…")
  • C/c++项目路径(选项卡"Projects",选中"MyAlgorithm"项目列表中的"Required Projects on build path"
  • 项目参考,在"MyGUI项目参考"列表中选中"MyAlgorithm"项目

虽然构建过程失败,但当我试图将"MyGUI"项目包含在"MyAlgorithmClass.h"中时,Eclipse/CDT自动完成功能确实建议存在"MyAlgorithmClass.h"。我还注意到,更改项目设置(如上面列表中所述)不会触发Makefile中的任何更改。

可能是Qt Eclipse集成阻止CDT相应地更新Makefile的情况,导致构建过程失败,因为缺少编译器/链接器的参数?

谢谢你的帮助!

简短的回答是QT-Eclipse集成不能正确工作。您需要为您的项目手动更新QT .pro文件:

添加库:

使用语法添加任何库:

LIBS += -L<Full path to library include directory>
LIBS += -l<Eclipse Artifact>

的例子:

LIBS += -LC:/MyEclipseWorkspace/Project1/Debug
LIBS += -lProject1

这将链接libProject1。

添加包含文件:

INCLUDEPATH += <Absolute or Relative Path to include location>

的例子:

INCLUDEPATH += src ../Project2/include C:/dev/boost_1_46_1

HTH