我现在正在探索开源工具来测试我的 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