QT Subdir-未定义的主要参考 - 错误

时间:2012-08-29 11:49:05

标签: c++ qt qt-creator

我有一个结构为

的简单QT子目录项目
TestProject/
    TestProject.pro
    Subdir1/
            Subdir1.pro
        sources/
            main.cpp
    Subdir2/
        Subdir2.pro
        headers/
            mainwindow.h
        sources/
            mainwindow.cpp

这是我的.pro文件 TestProject.pro

TEMPLATE = subdirs
SUBDIRS += \
    Subdir1 \
    Subdir2

Subdir1.pro

SOURCES += \
main.cpp

Subdir2.pro

QT += sql

SOURCES += \
    mainwindow.cpp \
HEADERS += \
    mainwindow.h \

当我尝试运行应用程序时,出现以下错误:

(.text+0x18):-1: error: undefined reference to `main'

我在Ubuntu 12.04上使用Qt Creator IDE。 我花了很多时间试图解决这个问题,为了让Qt能够构建项目,我必须在.pro文件中添加什么内容?

提前致谢

2 个答案:

答案 0 :(得分:3)

看起来你要做的就是将所有源文件构建成一个可执行文件。这不是子模板的用途,而是用于创建构建多个不同目标的单个Makefile(例如,两个不同的可执行文件,或可执行文件和库)。

你可能想要的只是一个.pro文件,例如

SOURCES = Subdir1/mainwindow.cpp Subdir1/main.cpp

或者您可以将subdir pro文件转换为(按照惯例).pri文件。然后在顶级你会做:

include(Subdir1/Subdir1.pri)
include(Subdir2/Subdir2.pri)

答案 1 :(得分:1)

尝试将 Subdir.pro 文件明确添加到 TestProject.pro 文件中:

OTHER_FILES += \
    Subdir1/Subdir1.pro\
    Subdir2/Subdir2.pro\

所以Qt知道有子项目。