Ошибка при статической компиляции Qt с драйвером postgresql - PullRequest
0 голосов
/ 27 октября 2019

Я установил через Mainteinance Tool Qt 5.12.5 и исходники. У меня есть следующие каталоги:

C:\Qt\5.12.5\Src 
C:\Qt\Tools\mingw730_32\
C:\Qt\Tools\mingw730_64\

С другой стороны, я прочитал, что загружаемая версия Postgres скомпилирована с MSVC, и я должен скомпилировать свою собственную версию. Я сделал это по ссылке , и теперь у меня есть версия postgresql в c:\pgsql

Наконец я добавил c:\pgsql в Путь пользователя

Следующий шаг, яоткрыл PowerShell в режиме администратора, и я перешел на C:\Qt\5.12.5\Src\.

Далее установите путь env для этого сеанса PowerShell: $env:Path += ";C:\Qt\Tools\mingw730_64\bin\;C:\Qt\5.12.5\Src;C:\pgsql\include\;C:\pgsql\lib\;C:\pgsql\bin\" (снова задайте путь pgsql ....)

После этого я выполняю configure.bat следующим образом:

configure -v -static -release -static-runtime -platform win32-g++ -prefix C:\Qt\5.12.5\Estatico\ -opensource -confirm-license -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -no-openssl -opensource -confirm-license -skip webengine -make libs -nomake tools -nomake examples -nomake tests -sql-psql

Но я получаю эту ошибку:

ERROR: Feature 'sql-psql' was enabled, but the pre-condition 'libs.psql' failed.

Поиск в config.log Я могу прочитать эти строки:

loaded result for library config.qtbase_sqldrivers.libraries.psql
Trying source 0 (type pkgConfig) of library psql ...
pkg-config use disabled globally.
  => source produced no result.
Trying source 1 (type psqlConfig) of library psql ...
pg_config not found.
  => source produced no result.
Trying source 2 (type psqlEnv) of library psql ...
None of [liblibpq.dll.a liblibpq.a libpq.dll.a libpq.a libpq.lib] found in [] and global paths.
  => source produced no result.
Trying source 3 (type psqlEnv) of library psql ...
  => source failed condition '!config.win32'.
test config.qtbase_sqldrivers.libraries.psql FAILED

Что я могу сделать или чтоправильный способ сделать это? Заранее спасибо.

ОБНОВЛЕНИЕ

Есть похожий вопрос здесь , но он не был решен, и эти вопросы задают о Visual Studio.

Я хочу скомпилировать его под mingw.

Решение, предложенное @Soheil Armin, тоже не работает Решение, предложенное @Soheil Armin, работает нормально, ноМне нужно удалить все исходное дерево и переустановить его, как он предложил. Если нет, новая конфигурация не будет работать. Также можно сохранить символ ^:

configure <your parameters> 
PSQL_LIBS="C:\pgsql\lib\libpq.a" 
-I "C:\pgsql\include" 
-L "C:\pgsql\lib"

1 Ответ

1 голос
/ 27 октября 2019

Вам необходимо явно указать пути к библиотекам Postgres.

configure <your parameters> ^
PSQL_LIBS="C:\pgsql\lib\libpq.a" ^
-I "C:\pgsql\include" ^
-L "C:\pgsql\lib"
...