2011-08-31 151 views
8

我有一个标准的C库,在使用gcc的Mac OS X上编译得很好。MinGW“程序入口点libiconv无法找到...”

我已经研究可用于Windows的C编译器,并选择MinGW的一对夫妇的原因:

  • MS的工具不支持C99
  • 的Cygwin等。人。增加与POSIX模拟复杂的多级,我不想
  • 无法获得LCC-win32的工作

但是,当我尝试建立我的图书馆,我得到这个:

enter image description here

这东西都看起来很陈旧,而且有几乎没有像样的在线资源,我可以找到。

任何帮助将不胜感激。

谢谢。

编辑:

不要紧,我尝试建立。即使我只用一个添加两个数字的函数创建一个文件。它崩溃。似乎没有任何与源代码或传递给gcc的选项有关。我认为这是MinGW设置的问题,而不是我的项目。

+0

当您构建DLL时会产生此错误? –

+0

这并不重要,我试图建立。即使我只用一个添加两个数字的函数创建一个文件。它崩溃。似乎没有任何与源代码或传递给gcc的选项有关。 – Steve

+1

显然你的mingw安装是borked。你是如何安装的? –

回答

26

确保您的路径中包含libiconv-2.dll的任何其他目录之前都有C:\ MinGW \ bin。显然,某些MinGW发行版中的as.exe依赖于该DLL,并且在某处(例如GnuWin32工具)在某个路径中具有较旧版本的路径会导致as.exe接收不具有所需入口点的旧版本。

参见:http://sourceforge.net/tracker/index.php?func=detail&aid=3375870&group_id=200665&atid=974439

注 - 你应该能够用较新的一个在\MinGW\bin替换旧libiconv-2.dll - 的DLL 的命名应该意味着它是落后与老一个兼容的(即不依赖于较新出口的旧软件应该继续工作)。但是,如果您决定尝试用您的MinGW安装中的DLL替换冲突的DLL,我还没有测试过,所以一定要进行备份。

+2

有趣。我已经安装了GnuWin32。让我试试这个并回到你身边。我的'PATH'中也有'C:\ MinGW \ bin',但是* GnuWin32之后*我相信...所以如果与GnuWin32有冲突,我相信系统会先找到GnuWin32版本* *。这绝对是对这里出现问题的合理解释。 – Steve

+0

宾果。我希望我能给你更多的选票。这正是问题(与GnuWin32冲突)。 – Steve

+0

干杯章。在调查发生了什么的时候,我发现如果我在当前目录_was_ \ mingw \ bin中调用gcc,我可以进行编译。在那种情况下,as.exe很高兴。但任何其他pwd,它不是。谢谢你。我在构建时正在寻找某种不匹配的dll问题,而不仅仅是as.exe没有正确启动。干杯。 – RichColours

2

除了确保C:\ MinGW \ bin在您的PATH之前,您还应该重新启动您的计算机(或可能注销/登录),以确保您的PATH实际上已更新。

相关问题