Qt子项目未定义引用`main'

时间:2015-04-30 08:13:15

标签: c++ qt debugging mvp

我正在使用Qt学习模型 - 视图 - 演示者(MVP)模式,并且 follow example 。我可以构建它并从build文件夹运行它,但由于错误而无法调试它:

.../glibc-2.19/sysdeps/x86_64/start.S:118: error: undefined reference to `main'
error: collect2: error: ld returned 1 exit status

我无法弄清楚出了什么问题?快速谷歌搜索带来的信息不多。 PS:我使用OpenSUSE 13.1和Qt 4.8

1 个答案:

答案 0 :(得分:1)

您使用的subdirs模板错误。它不应包含任何内容,但SUBDIRS,有时CONFIG += ordered。您的项目模型也有点复杂。你应该首先尝试一些更简单的方法,没有库和子项目。

子目录项目的好例子:How to use QMake's subdirs template?

<强>更新

我会解释一下。您需要在项目中进行最小的更改才能进行编译和编译。链接:

  1. SOURCES = $$PWD/Presenter/main.cpp
  2. 删除WiringClone.pro
  3. CONFIG += ordered添加到WiringClone.proView.pro
  4. config \删除WiringClone.pro行(这是导致原始链接错误的行)
  5. 订购子项目。 WiringClone.proUtilities Model View PresenterView.proLogic GUI
  6. 但是,即使经过所有这些更改,您也必须解决无法解决的问题:您的Utilities库取决于您的Model库,但您的Model取决于您的Utilities }}。链接不起作用。不允许循环依赖。这就是为什么我建议你先松开所有的库并先写一个简单的可靠的可执行文件。

相关问题