QT Subdir-未定义对main的引用-错误

QT Subdir- Undefined reference to main - Error

本文关键字:引用 错误 main Subdir- 未定义 QT      更新时间:2023-10-16

我有一个简单的QT subdir项目,其结构为

TestProject/
    TestProject.pro
    Subdir1/
            Subdir1.pro
        sources/
            main.cpp
    Subdir2/
        Subdir2.pro
        headers/
            mainwindow.h
        sources/
            mainwindow.cpp

这是我的.pro文件测试项目.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文件中放些什么?

提前感谢

看起来您要做的是将所有源文件构建为一个可执行文件。这不是subdirs模板的作用,它是用于创建一个Makefile,该Makefile构建多个不同的目标(例如两个不同的可执行文件,或者一个可执行文件和一个库)。

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

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

或者,您可以将subdir-pro文件制作成(按惯例).pri文件。然后在最高级别,你只需要做:

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

尝试将Subdir.pro文件显式添加到TestProject.pr中:

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

所以Qt知道有子项目。