Использование TUG для Windows. Компиляция не удалась

Сейчас я изучаю инструменты с открытым исходным кодом для тестирования моих приложений QT GUI. После некоторых исследований я нашел многообещающее:

TUG: библиотека модульного тестирования GUI https://github.com/pedromateo/tug_qt_unit_testing_fw

К сожалению, это библиотека Linux, но я разрабатываю Windows-приложения с MSVC.

Но я не сдался и установил Cygwin. Моя идея состояла в том, чтобы скомпилировать TUG с Cygwin, а затем использовать его вместе с cygwin1.dll в моей структуре тестирования.

TUG компилируется с использованием qmake Файлы проекта, создающие обычные файлы make.

Первым шагом было включить переключатель -D__MINGW32__ в разделе DEFINES моего файла проекта qmake. Это устраняет некоторые ошибки компиляции.

Затем я запустил свой qmake с:

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

Затем я запустил make, и он прекрасно скомпилировался, но на последнем шаге не удалось связать объектные файлы с libTUG.dll, Это привело к множеству неопределенных ошибок ссылок.

Моя идея состоит в том, что make пытается связать библиотеки Windows MSVC с моим 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

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]