Qt6.5.3 mingw64 编译oracle oci
1.下载oracle install client,主要是basic 和 sdk。
2.将sdk和basic的内容复制到一起,basic中的instantclient_xx_x目录下的内容,sdk的instantclient_xx_xx目录下的内容。
构成如下的目录结构
oracleBSPath/
├── include/ ← 头文件(来自 sdk/include)
├── lib/liboci.a ← MinGW 库
├── oci.dll
└── sdk/ ← 原始目录(可保留,但非必需)
3.将oci.dll生成mingw64支持的.a库
bash
gendef oci.dll
dlltool -d oci.def -l liboci.a -D oci.dll
生成一个liboci.a,这是 MinGW 链接所需的关键文件
4.切换到Qt源码中的路径下,我的路径
c
C:\DevelopSoftware\Qt6\6.5.3\Src\qtbase\src\plugins\sqldrivers
执行命令
bash
mkdir build
cd build
使用如下命令,具体的可以根据自己的目录修改
执行cmake命令
powershell
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM="C:/DevelopSoftware/Qt6/Tools/Ninja/ninja.exe" -DCMAKE_C_COMPILER="C:/DevelopSoftware/Qt6/Tools/mingw1120_64/bin/gcc.exe" -DCMAKE_CXX_COMPILER="C:/DevelopSoftware/Qt6/Tools/mingw1120_64/bin/g++.exe" -DCMAKE_PREFIX_PATH="C:/DevelopSoftware/Qt6/6.5.3/mingw_64;C:/DevelopSoftware/Oracle/oracleBSPath/sdk" -DQT_FEATURE_sql_oci=ON -DQT_FEATURE_sql_mysql=OFF -DQT_FEATURE_sql_psql=OFF -DQT_FEATURE_sql_odbc=OFF -DQT_FEATURE_sql_tds=OFF -DQT_FEATURE_sql_db2=OFF -DQT_FEATURE_sql_sqlite=OFF -DQT_FEATURE_sql_ibase=OFF ../
- 执行如下,生成qsqloci.dll
powershell
ninja qsqloci
-
生成位置在build/plugins/sqldrivers/qsqloci.dll
-
复制 qsqloci.dll 到 自己的项目的运行路径下的**/plugins/sqldrivers/**
-
复制basic中的dll,oci.dll, oraociei19.dll 到 exe 同目录(最好全部的dll都复制)