ソースからgitのmake installを実行しようとすると、エラーが発生し続けます:
make install
* new build flags or prefix
CC credential-store.o
In file included from credential-store.c:1:
In file included from ./cache.h:8:
./gettext.h:17:11: fatal error: 'libintl.h' file not found
# include <libintl.h>
^
1 error generated.
make: *** [credential-store.o] Error 1
Lib.intl.hで何もGoogleの検索結果が表示されていません。このとらえどころのないライブラリとは何ですか?また、どうすればgitをインストールできるように入手できますか?
システムによっては、おそらくGNU Cライブラリ(glibc)の一部です。
ファイルlibintl.h
をインストールするだけでは何の効果もありません。
Debianベースのシステム(Debian、Ubuntu、およびLinux Mintを含む)では、libc6-dev
パッケージの一部であり、次のものと共にインストールされます。
Sudo apt-get install libc6-dev
Mac OS Xを使用しているため、「libintl.h OSX」をGoogleで検索すると、多くの人が同様の問題を抱えていることがわかります。 GitソースのINSTALL
ファイルによると:
NO_GETTEXT
を設定して、ローカリゼーションサポートを無効にし、Gitで英語のみを使用するようにします。autoconf
の下で、configure
スクリプトは、システムでlibintl
が見つからない場合、これを自動的に実行します。
OSXでEl Capitanと自家製のFWIWを使用して、
1)El Capitanのアップグレードが何かを壊したかどうか確信が持てなかったので、まず最新のgettextがあることを確認しました。
$ brew reinstall gettext
その後、私は以下を行うことで再リンクする必要がありました:
$ brew unlink gettext && brew link gettext --force
その後、他のツールがそれを見つけることができ、人生は通常に戻りました。
Libintlはlibgettextに由来することを学びました。 Homebrewですでにgettextをインストールしている場合、次のように表示されます:
$ locate libintl
/usr/local/Cellar/gettext/0.18.3.2/lib/libintl.8.dylib
/usr/local/Cellar/gettext/0.18.3.2/lib/libintl.a
/usr/local/Cellar/gettext/0.18.3.2/lib/libintl.dylib
<..snip..>
そして、「-lintlのライブラリが見つかりません」の問題について次のように機能します
ln -s /usr/local/Cellar/gettext/0.18.3.2/lib/libintl.* /usr/local/lib/
パッケージがこのファイルを探しているとき、GNU gettextパッケージをインストールまたはビルドします。このパッケージは「インストール」${prefix}/include/libintl.h
、 とりわけ
Libtoolsの適切なバージョンを見つけることができる場合( http://ftp.gnu.org/gnu/libtool/ から)、パッケージで見つけることができます。
それ以外の場合は、以下を使用して構成し、この依存関係を削除できます。
./configure --disable-nls
OSX Lionに最新バージョンのgitをインストールするために、これが私がしたことです。
* gitがまだインストールされていない場合は、サイトからダウンロードして~/src/git
に展開するだけです。
また、whereis git
を実行して、既にインストールされているかどうかを確認し、プレフィックスの設定内容を確認することをお勧めします。私は/usr/bin/git
だったので、プレフィックスを/usr
に設定しました
mkdir ~/src
git clone https://github.com/git/git.git
cd git
make configure
./configure --prefix=/usr
make
make install
このようにすることで、余分なライブラリをダウンロードしたり、フォーラムで回答を探したりする必要がなくなりました。 automakeのおかげで、gitはシステム用にセットアップされており、問題なく動作することを知っています。
ローカライズを気にせず、英語だけで問題ない場合は、NO_GETTEXT
のMakefile
Makefile
から:
Git出力を翻訳したくない場合は、NO_GETTEXTを定義します。翻訳されたGitには、GNU libintlまたは別のgettext実装に加えて、実行時にlibintl-Perlが必要です。
これは有望に見えます- http://code.google.com/p/rudix/downloads/detail?name=static-libintl-0.18.1.1-5.pkg&can=2&q= -libintlが含まれているようですパッケージとして。 libintlへの依存関係を解決してくれました。
macportをインストールし、ターミナルに入力します
Sudo port install libcxx
このとらえどころのないライブラリとは何ですか?また、どうすればgitをインストールできるように入手できますか?
GNUマニュアル から:
11.21 libintl.h
Libintlは、プログラムにネイティブ言語サポートを提供するライブラリです。
マクロを定義します
__USE_GNU_GETTEXT
、__GNU_GETTEXT_SUPPORTED_REVISION
、および関数gettext
、dgettext
、dcgettext
、ngettext
、dngettext
、dcngettext
、textdomain
、bindtextdomain
、bind_textdomain_codeset
。ドキュメンテーション:
- http://www.gnu.org/software/libc/manual/html_node/Message-catalogs-with-gettext.html 、
- http://www.gnu.org/software/gettext/manual/html_node/gettext.html 。
Gnulibモジュール:gettext
GNU gettextがインストールされている場合、Gnulibによって修正された移植性の問題:
一部のプラットフォームでは、このヘッダーファイルがありません:Mac OS X 10.5、FreeBSD 6.0、OpenBSD 3.8、Minix 3.1.8、AIX 5.1、HP-UX 11、IRIX 6.5、OSF/1 5.1、mingw、MSVC 9、Interix 3.5、BeOS 。
これらの関数は、一部の非glibcプラットフォーム(NetBSD 3.0、Solaris 10)では、システム依存の文字列(メジャーバージョン1またはマイナーバージョン1)を含むGNU .moファイル)を処理できません。
得られる libintl.h
Gnulibから GNU Portability Library 。GNUのサバンナからダウンロードできます。
Gnulib Webページ は次のようにも述べています:
Gnulibはリリースを行いません。ソースレベルで使用することを目的としています。
サバンナで現在のgnulibソースを参照できます。
Gnulibを使用するには、次のシェルコマンドを使用して、匿名のGitを介してソースコードと履歴を取得できます。
git clone git://git.savannah.gnu.org/gnulib.git
開発者は、コミットを行う目的で、非匿名Gitを介してソースコードを取得することもできます。詳細については、Gnulibの最上位READMEファイルをご覧ください。
ソースを入手したら、。/ gnulib-tool --helpを実行します。ヘルプと詳細については、以下のドキュメントと他のリソースを参照してください。
AssaultCubeをコンパイルしようとしてこのエラーが発生した場合(「INTL/libintl.h」が欠落していると文句を言うはずです)、AssaultCubeアプリのコンテンツからINTL.frameworkを取得して/ Library/Frameworksに配置する必要があります。 MacPorts、HomeBrewなどのパッケージでは修正できません。コンパイルに失敗するオープンソースプロジェクトの数は非常に迷惑です。