MinGW“无法定位程序入口点 libiconv ...”
Posted
技术标签:
【中文标题】MinGW“无法定位程序入口点 libiconv ...”【英文标题】:MinGW "The procedure entry point libiconv could not be located ..." 【发布时间】:2011-08-31 19:29:55 【问题描述】:我有一个标准的 C 库,它可以在 Mac OS X 上使用 gcc 很好地编译。
我检查了可用于 Windows 的 C 编译器,并选择 MinGW 有几个原因:
MS 的工具不支持 C99 Cygwin 等。人。使用我不想要的 posix 仿真增加了额外的复杂性 无法让 lcc-win32 工作但是,当我尝试构建我的库时,我得到了这个:
这些东西看起来都非常古老,而且我几乎找不到在线的像样的资源。
任何帮助将不胜感激。
谢谢。
编辑:
我要构建什么并不重要。即使我只是用一个添加两个数字的函数制作一个文件。它崩溃了。似乎与源代码或传递给 gcc 的选项根本没有任何关系。我认为这是我的 MinGW 设置的问题,而不是我的项目。
【问题讨论】:
这个错误是在构建DLL时产生的? 我要构建什么并不重要。即使我只是用一个添加两个数字的函数制作一个文件。它崩溃了。似乎与源代码或传递给 gcc 的选项根本没有任何关系。 显然您的 mingw 安装失败了。你是怎么安装的? 我使用自动 (GUI) 安装程序进行安装。我按照指示前往“T”。位于此处:mingw.org/wiki/Getting_Started 我最后一次尝试使用官方的 MinGW 安装程序——我承认那是很久以前的事了——我完全糊涂了。除非它从那时起取得了很大进展(甚至可能已经取得了),否则我建议使用其他人的发行版。 Nuwen的发行版是一个简单的解压操作-nuwen.net/mingw.html而且我没用过,但是听说过TDM发行版的好东西:tdm-gcc.tdragon.net/start 【参考方案1】:确保路径中的 C:\MinGW\bin 位于包含 libiconv-2.dll
的任何其他目录之前。显然,某些 MinGW 发行版中的 as.exe
依赖于该 DLL,并且在某处(例如 GnuWin32 工具)的路径中有它的旧版本将导致 as.exe
选择没有条目的旧版本点它正在寻找。
见:http://sourceforge.net/tracker/index.php?func=detail&aid=3375870&group_id=200665&atid=974439
注意 - 您应该能够将旧的 libiconv-2.dll
替换为 \MinGW\bin
中的新的 - DLL 的命名应该意味着它向后兼容旧的(即。 ,不依赖于新导出的旧软件应该继续工作)。但是,我尚未对此进行测试,因此如果您决定尝试使用 MinGW 安装中的 DLL 替换有冲突的 DLL,请务必备份。
【讨论】:
有趣。我确实安装了 GnuWin32。让我试试这个然后回复你。我的PATH
中也确实有C:\MinGW\bin
,但它是之后 GnuWin32 我相信...所以如果与GnuWin32 发生冲突,我相信系统会找到GnuWin32 版本首先。这似乎是对这里出了什么问题的合理解释。
宾果游戏。我希望我能给你更多的赞成票。这正是问题所在(与 GnuWin32 冲突)。
干杯小伙子。在调查发生了什么时,我发现如果我在当前目录 是 \mingw\bin 时调用 gcc,我可以编译东西。在那种情况下, as.exe 很高兴。但任何其他密码都不是。谢谢你。我在构建时正在查看某种不匹配的 dll 问题,而不仅仅是 as.exe 没有正常启动。干杯。
我刚刚在一台以前从未安装过编译器的机器上重新安装了 MinGW,文件libiconv-2.dll
不在我的系统上。我完全无法使用我的安装。还有其他人有这个问题吗?在使用新的安装程序+管理器之前,我从来没有遇到过这个问题。
出色的答案!!【参考方案2】:
除了确保 C:\MinGW\bin 先于您的 PATH 中,您还应该重新启动您的机器(或可能注销/登录),以确保您的 PATH 实际更新。
【讨论】:
以上是关于MinGW“无法定位程序入口点 libiconv ...”的主要内容,如果未能解决你的问题,请参考以下文章