gpt4 book ai didi

c++ - 将 oracle oci.dll 与 mingw w64 64 位编译器一起使用

转载 作者:行者123 更新时间:2023-11-30 04:12:23 25 4
gpt4 key购买 nike

我正在尝试将 oracle oci 库与编译器 mingw64 一起使用。如果我链接 oracle 提供的 oci.lib,我的 64 位程序会崩溃,因为显然 mingw64 不支持链接用 vc 创建的 dll。

解决方法似乎是:

1) 从 oci.dll 生成一个 def 文件,这是我用 mingw64 gendef 做的(如果我使用这个命令“dlltool -z oci.def --export-all-symbol oci.dll”我得到一个空的def 文件,而如果我使用 gendef,我会得到一个填充的 def 文件)

2) 用dlltool ("dlltool -d oci.def -l liboci.a") 生成导入库oci.a

然而,我用 dlltool 生成的 oci.a 库是一个空文件。在其他作品中,我似乎无法生成这个 oci.a 库,我应该使用它来将我的程序链接到 oci.dll

有人知道如何解决这个问题吗?有人能够正确执行此任务吗?

谢谢

马可

最佳答案

我刚刚生成了 liboci.a,没有任何问题。可能您搞砸了某些事情或使用了不正确的方法 (dlltool -z ...)。以下是您的操作方法:

  1. 下载并安装(可以从源代码构建)gendef 实用程序:

  2. 运行gendef oci.dll(将生成oci.def);

  3. 运行dlltool -D oci.dll -d oci.def -l liboci.a(将生成liboci.a);

  4. 现在尝试链接到 liboci.a

注意:请确保如果您的 oci.dll 是针对 x86 的,那么 dlltool 应该来自 MinGW/MinGW -w64 发行版也以 x86 为目标。 x64 情况也是如此,即目标架构匹配很重要。

关于c++ - 将 oracle oci.dll 与 mingw w64 64 位编译器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com