使用QMake如何为每个main()构建一次项目

时间:2016-09-13 09:39:09

标签: c++ qt unit-testing qmake

所以,我开始使用catch使用Qt进行单元测试(普通c ++,但使用带有.pro文件的qmake)。

这是一个包含以下文件的小项目:

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 - 它可以工作。

我想要做的是每次都要构建(无论是调试还是发布)。这可能吗?

1 个答案:

答案 0 :(得分:1)

不,每个.pro文件仅适用于单个可执行文件或库。但是你可以将共享的东西放在一个单独的.pro文件中,并将它包含在两个.pro文件中,每个文件都包含一个程序。