4

GNUstep/MinGW で Objective-C をコンパイルすると、次のエラーが発生します。

The procedure entry point __printf__ could not be located in the dynamic link library libintl-8.dll.

Windows 7/64 ビット。libintl-8.dll のファイル バージョンは 0.18.1 です。

コンパイラは正しいファイルを使用していますか?

編集: c:\MinGW\bin\libintl-8.dll にあるファイルのエクスポート テーブルは次のとおりです。

[Ordinal/Name Pointer] Table
        [   0] __printf__
        [   1] _get_output_format
        [   2] _nl_expand_alias
        [   3] _nl_explode_name
        [   4] _nl_find_domain
        [   5] _nl_find_msg
        [   6] _nl_language_preferences_default
        [   7] _nl_load_domain
         ...   ...
4

4 に答える 4

10

私のシステムでは、システムPATHenvvarを並べ替えてこれを修正し、c:\MinGW\bin前に表示されるようにしました%GTK_BASEPATH%\bin。そうすれば、GCC がの代わりにから起動した場合でも、必要な正しいlibintl-8.dllものas.exeが見つかります。そうしないと、必要なシンボルがすべて含まれていない GTK+ SDK に同梱されているものとリンクしようとすることになると思います。また、私の場合、ダイナミック リンカが使用しようと決定した実際にエラーが発生したときに、ダイアログ ボックスにシンボルが欠落していると不平がありました。c:\MinGW\bin\mingw32\binc:\MinGW\binas.exelibintl-8.dll

mingw-get残念なことに、各 SDK が独自のインストーラーと互換性のない DLL のバリアントを出荷する代わりに、実際に共有オブジェクトを共有する 経由でインストール可能なパッケージがこれ以上ありません…</p>

于 2015-03-23T15:22:19.270 に答える
4

同様の問題が発生しました。私の場合、コンパイラからのコンソール出力ではなく、ダイアログ ボックスにエラーが表示されました。これは、実際にはコンパイルではなく、コンパイラの実行に問題があることを示しています。gcc コマンドに追加-vして、実行中のサブコマンドを確認してください。私の場合as.exeMinGW/mingw32/bin代わりに実行しようとしていることが問題でしたMinGW/bin(libintl DLLは以前の場所に存在しません)。MinGW/mingw32見つからないようにフォルダーの名前を変更したところ、コンパイルは成功しました。なぜこの場所を探していたのかはわかりません。

最終的に、MinGW を新規インストールすることでこれを修正しました。

于 2013-10-02T01:05:12.303 に答える
0

これがどうあるべきかです。

libintl-8.dll 0.8.1

Export Table:
  Name:                          libintl-8.dll
  Time Date Stamp:               0x4EA19844 (21.10.2011 17:05:24)
  Version:                       0.00
  Ordinal Base:                  1
  Number of Functions:           84
  Number of Names:               84

  Ordinal   Entry Point   Name
        1   0x00009124    __printf__
        2   0x000105B8    _get_output_format
        .   ...
于 2013-08-22T19:20:27.367 に答える