Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用QMake如何为每个main()构建一个项目 < >我开始使用QET(Que+C++),使用Quest.+Pro文件进行单元测试。_C++_Qt_Unit Testing_Qmake - Fatal编程技术网

使用QMake如何为每个main()构建一个项目 < >我开始使用QET(Que+C++),使用Quest.+Pro文件进行单元测试。

使用QMake如何为每个main()构建一个项目 < >我开始使用QET(Que+C++),使用Quest.+Pro文件进行单元测试。,c++,qt,unit-testing,qmake,C++,Qt,Unit Testing,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

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

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


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

不,每个.pro文件只用于一个可执行文件或库。但是,您可以将共享内容放在单独的.pro文件中,并将其从两个.pro文件中包含,每个文件用于一个程序。

可能与@GLUTTON重复-这有点类似,谢谢。不过,我想我还需要更多的想法,如果可能的话,我想把它打开一点,看看是否还有其他选择。你可以使用
SUBDIRS
。谢谢你。但这是否意味着它必须是一个单独的项目?或者有没有一种方法可以将两个.pro文件链接在一起构建(可能像sub-dirs项目?),但仍然生成两个可执行文件还是每次都必须切换项目?谢谢只需创建一个简单的批处理文件(createAll.bat),为.pro和done文件调用qmake:-)awww…..我想是这样的!,谢谢:)想用qtcreator保持它的可构建性,但这不是优先权。