3

次の構造を持つ単純な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ファイルに何を入れなければなりませんか?

前もって感謝します

4

2 に答える 2

4

あなたがしようとしているのは、すべてのソース ファイルを 1 つの実行可能ファイルにビルドすることです。これは subdirs テンプレートの目的ではなく、いくつかの異なるターゲット (たとえば、2 つの異なる実行可能ファイル、または実行可能ファイルとライブラリ) をビルドする単一の Makefile を作成するためのものです。

おそらくあなたが望むのは、例えば.proファイルを1つだけ持つことです

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

または、サブディレクトリの pro ファイルを (慣例により) .pri ファイルにすることもできます。次に、最上位で次のようにします。

include(Subdir1/Subdir1.pri)
include(Subdir2/Subdir2.pri)
于 2012-08-29T12:38:32.220 に答える
1

Subdir.proファイルをTestProject.proファイルに明示的に追加してみてください。

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

そのため、Qt はサブプロジェクトがあることを認識しています。

于 2012-08-29T11:59:29.343 に答える