mingw64 下 GetACP 链接错误 (mingw-builds)

2024-02-11

我试图构建 gdal-1.10.0 (http://trac.osgeo.org/gdal/wiki/DownloadSource http://trac.osgeo.org/gdal/wiki/DownloadSource)使用 mingw64 (来自http://sourceforge.net/projects/mingwbuilds/files/host-windows/ http://sourceforge.net/projects/mingwbuilds/files/host-windows/x64-4.8.0-release-posix-seh-rev2.7z)。我已经编译了gdal-1.10.0下 标准 MinGW(32 位)版本没有问题。

我必须切换到 mingw64 的原因是标准 32 位 MinGW 发行版 不支持 c++11 功能,例如std::thread,以及(我怀疑)其他功能 出色地。但我最后得到一个链接错误告诉我一些关于

undefined reference to '__imp_GetACP'

(或者如果我使用 32 位变体,则使用不同的修饰名称 mingw64/mingw-builds)。顺便说一句,我尝试了不同版本的 mingw64,包括 64位,32位,seh,sjlj,但都给出了相同的错误GetACP().

我做了一些功课,找到了一些类似编译任务的说明:http://www.gaia-gis.it/spatialite-3.0.0-BETA/mingw64_how_to.html#env http://www.gaia-gis.it/spatialite-3.0.0-BETA/mingw64_how_to.html#env根据上面的网站,他们似乎表明问题必须解决 无法使用 WOW64 和正确版本的 windows dll 文件,因为 windows 会根据是 32 位还是 32 位自动为您确定它 64 位应用程序进行调用。这应该是 mingw64 的问题 因为编译器 gcc 是 64 位的,而 msys 是无可救药的 32 位的。

但由于我也尝试了32位版本,上面似乎没有解释 错误。 更重要的是,我尝试以一种肮脏的方式注释掉所有对GetACP(), 因为我并不真正关心代码页以及出于我的目的的所有内容。 奇怪的是,编译没问题(在一个新的源上,只需使用GetACP()被注释掉了),但是还是报同样的链接错误。我查了一下libkernel32.a, libiconv.a都在lib文件夹,并按照上面博客中的说明将 dll 复制出来c:\windows\system32并将它们放在 mingw 子文件夹中并进行适当的重命名。链接错误仍然存​​在。在花了近两天的时间但没有成功之后,我就停止了黑客攻击。我无法理解为什么整个源代码不包含对该函数的单个调用,并且我仍然收到链接错误。

任何人都可以解释一下可能导致 gdal 和 mingw64 之间出现此问题的原因吗? 以及如何解决它?

另外,关于 mingw64 的一个普遍问题是它真的能够支持 posix 函数?我看到包名称例如 x64-4.8.0-release-posix-seh-rev2.7z,但我记得MinGW的人说 他们永远不会支持完整的 posix。

附: 我正在 Windows Server 2008 R2(64 位)上对此进行测试。


更新: MinGW64(mingw-builds)下构建gdal-1.10.0的完整步骤是:

$./configure

然后, 编辑GDALmake.opt,找到GDAL_ROOT并将cygwin驱动格式替换为dos/mingw格式,例如 改变:

GDAL_ROOT  = /d/temp/build/gdal-1.10.0

to

GDAL_ROOT =  d:/temp/build/gdal-1.10.0

Replace

CONFIG_LIBS =   $(GDAL_ROOT)/$(LIBGDAL)  

with

CONFIG_LIBS =   $(GDAL_ROOT)/$(LIBGDAL)   -liconv

最后,

$ make && make install && cp apps/*.exe /usr/local/bin/

我无意中也遇到了同样的问题。 也许这是一个 MinGW 错误或错误的配置文件,但解决方案是添加-liconv到链接器标志的末尾,例如,替换

CONFIG_LIBS =   $(GDAL_ROOT)/$(LIBGDAL)   

with

CONFIG_LIBS =   $(GDAL_ROOT)/$(LIBGDAL)   -liconv

在 GDALmake.opt 文件中(通过在 Mingw 目录中搜索 GetACP 文件找到)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mingw64 下 GetACP 链接错误 (mingw-builds) 的相关文章

随机推荐

  • 更改 jQuery UI 按钮大小?

    我一直在我的页面上使用 jQuery UI 按钮 但是我还没有找到解决这个看似简单问题的方法 我希望我的一些按钮比其他按钮小 这应该像将按钮文本的 CSS 设置为类似的内容一样简单 font 8em 然而 jQuery UI 获取你的 DO
  • SQL Server 2005的默认并发控制

    SQL Server 2005 的默认并发控制是什么 是乐观并发控制还是悲观并发控制 这个可以设置吗 感谢期待 悲观 似乎是 2005 年的默认设置 尽管可以根据需要激活快照隔离 在默认的悲观模型中 第一个写入者将阻止所有后续写入 作家 但
  • PreventDefault 不适用于焦点事件

    我正在尝试设计一种表单 如果它具有特定的类 则用户应该无法与任何输入进行交互 由于各种原因 我想避免使用 disabled 属性 我试图阻止焦点事件的默认设置 但它不起作用 我在最新版本的 Firefox Chrome 和 Android
  • TFS 签入成功后清除“评论”字段吗?

    在 Visual Studio 2013 中 是否可以让 TFS 在成功签入后自动清除 注释 字段 在 待更改 面板上 目前 我只是在每次签到后手动突出显示并删除评论字段文本 下面的例子 在我的签到中添加了评论 希望在成功签入后看到这一点
  • 不使用 ContentProvider 时使用 CursorLoader

    Android SDK 文档说startManagingCursor 方法已弃用 此方法已被弃用 使用新的 CursorLoader 类和 LoaderManager 代替 这也可以通过 Android 兼容包在旧平台上使用 此方法允许活动
  • 如何为 R 中使用 grid.arrange() 创建的每一列指定标题?

    有谁知道是否可以在使用 grid arrange 创建的图表的每一列上给出标题 我知道可以为每个图表提供总体标题和标题 但我只需要一个列标题 非常感谢 grid arrange c1b c2a c3d c2b c3a c2d c3b c1a
  • 使用 Laravel Envoy 部署到具有不同项目根的多个服务器

    使用 Laravel Envoy 部署到多个服务器时 如何指定每个服务器的项目根目录 文档中提供的示例假设项目根目录对于两台服务器来说是相同的路径 Assume web 1项目根目录为 var html www and web 2项目根目录
  • 如何使用自定义 Comparator 或 equals 方法查找 Set 差异?

    我想找到两者之间的区别Set
  • 任何设置了“Access-Control-Allow-Origin: *”标头的 jQuery 托管版本?

    我最近一直在使用 jQuery 遇到了一个问题 我无法将其包含在用户脚本中 因为 XmlHttpRequest 使用同源政策 http en wikipedia org wiki Same origin policy 经过进一步测试我发现大
  • 尝试生成 apk 时,android studio 中的 livedata$1.class 出现重复输入错误 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我真的不知道是什么导致了这个错误以及如何解决它 我的所有依赖 implementation fileTree dir l
  • 如何展平嵌套模型? (keras函数式API)

    我使用 keras 模型功能 API 定义了一个简单的模型 它的一层是一个完全顺序的模型 所以我得到了一个嵌套的层结构 见下图 如何将这种嵌套层结构转换为平面层结构 使用脚本 而不是手动 What I have Layer type Out
  • 无法将资源加载为 XML 文件

    我已经使用 XNA 完成了我的项目 目前我正在尝试使用 Monogame 对其进行转换 我的问题是我无法加载 XML 文件 错误 Could not load Level asset as a non content file 我的代码 f
  • C++03中函数返回类型推导

    标签提出了问题 但尽管如此 请考虑以下几点 template
  • 无法将“mysql2/promise”导入 Node.js 13 / 14 上的 ES 模块 (MJS)

    从 CommonJS 迁移时 cjs 到 ES 模块 mjs 我遇到了将命名空间 CJS 导入 MJS 的问题 import mysqlPromise from mysql2 promise 返回错误 错误 ERR MODULE NOT F
  • R 集群导出错误“未找到对象”

    有人可以帮助我理解为什么我的程序会产生此错误吗 从这里可以看出 pay freq 显然是环境的一部分 那么为什么找不到它呢 语法与 ts 相同 可以毫无问题地找到它 大圆圈部分覆盖了单词功能 小圆圈部分覆盖了单词情节 cf pro lt f
  • ASP.NET requestValidation 4.5 和 WIF

    我有一个 ASP NET MVC 应用程序 启用了 Windows Identity Foundation 身份验证 并使用 ADFS 作为 STS 该应用程序现在位于带有 MVC 4 的 NET 4 5 上 当我将 ASP NET req
  • 如何实现 boost::variant 派生类?

    我已经尝试了几个小时来编写一个派生类boost variant 但我不明白问题是什么 我不明白编译错误意味着什么 实施清洁的规则是什么boost variant派生类 include
  • 如何批量分割numpy数组?

    听起来很容易 但我不知道该怎么做 我有 numpy 二维数组 X 1783 30 我想将它们分成 64 个批次 我这样编写代码 batches abs len X BATCH SIZE 1 It gives 28 我正在尝试批量预测结果 所
  • 如何使用rank函数获取hive中的最新记录

    我在配置单元中有下表 其中包含列 ID 名称和时间戳 根据下面的时间戳应该输出最新记录 你不需要为此排名 您的输出描述如下 select t from t order by t transaction time desc limit 3 E
  • mingw64 下 GetACP 链接错误 (mingw-builds)

    我试图构建 gdal 1 10 0 http trac osgeo org gdal wiki DownloadSource http trac osgeo org gdal wiki DownloadSource 使用 mingw64 来