2016-09-13 76 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可建立,但它不是優先事項。 –

相關問題