使用 PostgreSQL 编译静态 Qt 5.10.0 时出错
Error while compiling static Qt 5.10.0 with PostgreSQL
我正在尝试在Windows 7上使用mingw使用PostgreSQL 10(或9.2,但相同的错误(编译Qt 5.10.0。
但是,当我包含 psql 包含和 lib dirs 时,在 mingw32-make 之后我总是收到以下错误:
g++ -c -fno-keep-inline-dllexport -O2 -std=c++1z -fno-exceptions -Wextra -Wall -
W -Wvla -Wdate-time -DUNICODE -D_UNICODE -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -
DQT_MOC -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_COMPRESS -DQ
T_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -D
QT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_BOOTSTRAP_LIB -DQT_VERSION_STR=""5.10.0""
-DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=10 -DQT_VERSION_PATCH=0 -DQT_BOOTSTRAPPE
D -DQT_NO_CAST_TO_ASCII -I. -I. -I......include -I......includeQtCore -I.
.....includeQtCore5.10.0 -I......includeQtCore5.10.0QtCore -I......
includeQtXml -I......includeQtXml5.10.0 -I......includeQtXml5.10.0Q
tXml -IC:POSTGRESQL10include -I......mkspecswin32-g++ -o .objreleasem
oc.o moc.cpp
In file included from symbols.h:33:0,
from parser.h:32,
from moc.h:32,
from moc.cpp:30:
token.h:65:7: error: expected identifier before 'void'
F(THIS)
^
token.h:216:33: note: in definition of macro 'CREATE_ENUM_VALUE'
#define CREATE_ENUM_VALUE(Name) Name,
^
...
token.h:263:1: error: expected declaration before '}' token
};
^
Makefile.Release:314: recipe for target '.obj/release/moc.o' failed
我在谷歌上搜索并在qt论坛上找到了一个线程,其中有人有相同的错误,但没有解决方案:https://forum.qt.io/topic/66218/trubble-with-static-qt5-6-0-with-qt-sql-psql-compiling-from-source
我的配置命令如下所示:
configure -prefix C:QtStatic5.10.0 -static -release -nomake tests -nomake examples -confirm-license -I"C:POSTGRESQL10include" -L"C:POSTGRESQL10lib" -opensource -qt-zlib -qt-libpng -qt-libjpeg -sql-psql -opengl desktop
如果我删除,编译工作正常
-I"C:POSTGRESQL10include"
-L"C:POSTGRESQL10lib"
但显然没有 PSQL。
关于如何解决此问题的任何想法将不胜感激,谢谢。
您似乎最近没有构建Qt(5.8后(-不再支持-I
和-L
配置语法。
对我来说,postgres 只是工作,我所需要的只是-sql-psql
配置标志和系统路径中的库。
如果仅此行不通,则可以通过添加以下配置标志来指定路径:
PSQL_INCDIR=C:POSTGRESQL10include
PSQL_LIBDIR=C:POSTGRESQL10lib
相关文章:
- 从 ParaView 构建自定义 Qt 应用程序示例时出错
- 使用 qt 进行 SSL 握手期间出错
- 从 Qt(release) 生成的文件执行.EXE文件时出错
- 在 Qt 中将 x 可执行文件作为按钮事件运行时出错
- 交叉编译 qt:加载共享库时出错
- 打开终端时出错:MacOs 10.12.4 上的 Qt Creator 未知
- 使用 PostgreSQL 编译静态 Qt 5.10.0 时出错
- 尝试从 Github 编译 OpenCV QT 代码时出错
- 使用 Qt (Ubuntu 14.04) 编译 qt-dab 时出错
- 使用由 Mingw 5.3 编译的 boost ASIO 库使用 QT 时出错
- 使用 Qt 创建器时出错:"multiple definition" "first defined here"
- 尝试使用共享库部署QT应用程序时出错
- 将 TagLib 链接到 Qt 时出错
- 为什么我在使用 Qt creator 用 C 编译代码时出错,但可以使用 make 文件轻松做到这一点
- 在 Qt 中使用 for 与 OpenCV3 时出错
- 使用 Qt 标头的递归包含时出错
- std::stoul 在带有 NDK r13b 的 Android 版 Qt 应用程序上出错
- LNK1104将Boost库添加到Qt项目时出错
- 尝试在Qt中运行应用程序时出错
- 仅在从命令行构建Qt项目时出错