2016-09-13 80 views
1

因此,我开始使用使用Qt(普通C++,但将qmake与.pro文件一起使用)的catch进行单元测试。使用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 

然后我可以运行单元测试,UDPDatagram.exe - 它的工作原理。

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

+0

可能的重复[如何使用qmake在单个项目中构建多个二进制文件?](http://stackoverflow.com/questions/1538398/how-do-i-use-qmake-to-build-multiple -bin-in-a-single-project) – Gluttton

+0

@Gluttton - 它有点类似,谢谢。我想我可以使用更多的想法,并希望尽可能多地打开它,看看是否有其他选择。 –

回答

1

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

+0

谢谢你。但这是否意味着它必须是一个单独的项目?或者有没有办法将两个.pro文件链接在一起(可能像一个子目录项目?),但仍然会生成两个可执行文件? - 或者我必须每次都切换项目吗?谢谢! –

+0

只是创建一个简单的批处理文件(createAll.bat)调用qmake这两个.pro文件,并完成:-) – falkb

+0

www .....我想这样!谢谢:)想尽量保持它与qtcreator可建立,但它不是优先事项。 –

相关问题