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

标签 c++ qt unit-testing qmake

因此,我开始使用带有 Qt 的 catch 进行单元测试(纯 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 - 它有效。

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

最佳答案

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

关于c++ - 使用 QMake 如何为每个 main() 构建一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39466784/

相关文章:

.net - 对两个对象进行 Assert.AreEqual 但忽略 DateTime 属性

c++ - 如何使用 `std::multimap` 或任何其他容器对多个值进行排序?

qt - 如何在 Qt 上实现提示对话框

c++ - 仅在提供的差异中将警告转化为错误

qt - qlist - 避免内存泄漏

c++ - 从 Qt 应用程序获取原始数据包数据

c# - 将标准输出重定向到列表<string>或流

unit-testing - 早期写测试真的合理吗?

c++ - 我可以使用哪种算法进行四边形/立方体检测?

c++ - Electron :ui和后端进程在Windows上访问相同的日志文件