я пытаюсь скомпилировать библиотеку essnac-ng из github с msvc2017 для использования в уже существующем qt-Project.
Мне удалось скомпилировать его, используя msys2 (с make, autoconf, automake, yacc, bison) и powershell:
cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 `& powershell
cd D:\Projekte\esnacc-ng
bash ./boot.sh
bash ./configure LD=linker.exe
make
make install
Проблема 1: во время make компилируются только статические библиотеки со следующим предупреждением:
warning: undefined symbols not allowed in x86_64-pc-msys shared libraries; building static only
после попытки сказать, что здесь написано:
libtool: неопределенные символы не разрешены в i686-pc-mingw32 shared
я получаю ошибку во время make:
cl : Befehlszeile error D8021 : Ungültiges numerisches Argument /Wl,-DLL,-IMPLIB:cxx-lib/.libs/cxxasn1.dll.lib.
make[1]: *** [Makefile:1641: cxx-lib/libcxxasn1.la] Error 2
make[1]: Leaving directory '/d/Projekte/esnacc-ng'
make: *** [Makefile:1370: all] Error 2
PS D:\Projekte\esnacc-ng>
Проблема 2:
Попытка использовать статическую библиотеку, как это в моем файле pri:
LIBS += -L$$PWD/cxx-lib/libs/ -lcxxasn1
LIBS += -L$$PWD/cxx-lib/libs/ -lcxxasn1rose
INCLUDEPATH += $$PWD
INCLUDEPATH += $$PWD/cxx-lib/inc
HEADERS += $$PWD/MyAsnFile.h
SOURCES += $$PWD/MyAsnFile.cpp
QMAKE_CFLAGS_MT+=$$PWD/cxx-lib/inc
QMAKE_CXXFLAGS_MT+=$$PWD/cxx-lib/inc
#QMAKE_CFLAGS_RELEASE += /MD
DISTFILES += \
$$PWD/cxx-lib/inc/snacc.h.in
Я получаю ошибку во время компиляции:
Fehler: LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.obj überein.
Я видел эту ветку здесь, но не уверен, как превратить ее во что-то полезное для себя:
LNK2038: обнаружено несоответствие для 'RuntimeLibrary': значение 'MT_StaticRelease' не соответствует значению 'MD_DynamicRelease' в file.obj