1

我现在正在探索开源工具来测试我的 QT GUI 应用程序。经过一番研究,我发现了有希望的:

TUG:GUI 单元测试库https://github.com/pedromateo/tug_qt_unit_testing_fw

不幸的是,它是一个 Linux 库,但我正在使用 MSVC 开发 Windows 应用程序。

但我没有放弃并安装了 Cygwin。我的想法是用 Cygwin 编译 TUG,然后cygwin1.dll在我的测试框架中使用它。

TUG正在使用qmake生成正常 make 文件的项目文件进行编译。

第一步是将开关包含-D__MINGW32__在我的 qmake 项目文件的 DEFINES 部分中。这消除了一些编译错误。

然后我运行我的qmake:

/cygdrive/[My Windows QMake Install Path]/qmake.exe –spec cygwin-g++ tug_base_lib

然后我运行 make ,它编译得很好,但在最后一步将目标文件链接到libTUG.dll. 它最终导致了很多未定义的引用错误。

我的想法是,make 尝试将 MSVC Windows 库链接到我libTUG.dll导致错误。

有没有人有TUG与 Windows 应用程序一起使用的经验?

生成的 Makefile 中链接失败的相应部分可能是:

$(TARGET):  $(OBJECTS) $(SUBLIBS) $(OBJCOMP)  
    -$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)
    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP)
    -$(QMAKE) -install ln -s $(TARGET) $(TARGET0)
    -$(QMAKE) -install ln -s $(TARGET) $(TARGET1)
    -$(QMAKE) -install ln -s $(TARGET) $(TARGET2)

选项在哪里

LINK          = g++
LFLAGS        = -shared -Wl,-soname,libTUG.dll.1
LIBS          = $(SUBLIBS) -L/usr/X11R6/lib -L[Path of my Windows QT Libs] -lQt5Widgets_vc14-x64 -lQt5Gui_vc14-x64 -lQt5XmlPatterns_vc14-x64 -lQt5Network_vc14-x64 -lQt5Test_vc14-x64 -lQt5Core_vc14-x64 -lGL -lpthread 

TARGET        = libTUG.dll.1.0.0
TARGETA       = libTUG.a
TARGET0       = libTUG.dll
TARGETD       = libTUG.dll.1.0.0
TARGET1       = libTUG.dll.1
TARGET2       = libTUG.dll.1.0
4

0 回答 0