我有一个结构为
的简单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文件中添加什么内容?
提前致谢
答案 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知道有子项目。