2016-09-13 6 views
1

Итак, я начинаю использовать модульный тест, используя catch с Qt (простой C++, но с использованием qmake с .pro-файлом).Использование QMake, как я могу построить проект один раз для каждого main()

Его маленький проект со следующими файлами:

DatagramSocket.cpp/h 
main.cpp      - this contains a main() function 

Но и для модульного тестирования имеет файлы:

catch.hpp 
unittestdatagramsocket.cpp - this contains a main() function 

В моем файле .pro я могу построить проект, как правило, как это:

TEMPLATE = app 
CONFIG += console c++11 
CONFIG -= app_bundle 
CONFIG -= qt 
# TARGET = unittest-UDPDatagram 
TARGET = UDPDatagram 

SOURCES += \ 
    main.cpp \ 
    DatagramSocket.cpp \ 
    # unittestdatagramsocket.cpp 


HEADERS += \ 
    DatagramSocket.h \ 
    catch.hpp 

LIBS += \ 
    -lwsock32 
    -lws2_32 

И тогда я могу запустить UDPDatagram.exe - он работает.

Или я могу построить его для модульного тестирования, как это:

TEMPLATE = app 
CONFIG += console c++11 
CONFIG -= app_bundle 
CONFIG -= qt 
TARGET = unittest-UDPDatagram 
# TARGET = UDPDatagram 

SOURCES += \ 
    # main.cpp \ 
    DatagramSocket.cpp \ 
    unittestdatagramsocket.cpp 


HEADERS += \ 
    DatagramSocket.h \ 
    catch.hpp 

LIBS += \ 
    -lwsock32 
    -lws2_32 

Тогда я могу запустить UnitTest-UDPDatagram.exe - это работает.

Что бы я хотел сделать для сборки (будь то отладка или выпуск) для сборки как каждый раз. Это возможно?

+0

Возможный дубликат [Как использовать qmake для создания нескольких двоичных файлов в одном проекте?] (Http://stackoverflow.com/questions/1538398/how-do-i-use-qmake-to-build-multiple -binaries-in-a-single-project) – Gluttton

+0

@ Gluttton - это похоже, спасибо. Я думаю, что я мог бы использовать дальнейшие идеи, хотя и хотел бы держать его открытым немного дольше, если это возможно, чтобы увидеть, есть ли другие варианты. –

ответ

1

Нет. Каждый .pro-файл предназначен только для одного исполняемого файла или библиотеки. Но вы можете поместить общий материал в отдельный файл .pro и включить его из двух файлов .pro, каждый из которых предназначен для одной программы.

+0

Спасибо за это. Но означает ли это, что это должен быть отдельный проект? или есть способ связать два файла .pro для совместной сборки (может быть, как проект sub-dirs?), но все же создать два исполняемых файла? - или я должен каждый раз переключать проекты? Благодаря! –

+0

Просто создайте простой командный файл (createAll.bat), вызывающий qmake для обоих файлов .pro и выполнив :-) – falkb

+0

awww ..... Я так полагаю !, спасибо :) хотел попытаться сохранить его с помощью qtcreator , но это не приоритет. –