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

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

这是我的 .pro 文件
测试项目
TEMPLATE = subdirs
SUBDIRS += \
    Subdir1 \
    Subdir2

子目录1.pro
SOURCES += \
main.cpp

子目录2.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(例如两个不同的可执行文件,或者一个可执行文件和一个库)。

您可能想要的是只有一个 .pro 文件,例如
SOURCES = Subdir1/mainwindow.cpp Subdir1/main.cpp
或者您可以将 subdir pro 文件制作成(按照惯例).pri 文件。然后在顶层,您只需执行以下操作:

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

关于c++ - QT Subdir - 未定义对 main 的引用 - 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12177241/

10-13 04:49