質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

PECL

PECL(PHP Extension Community Library)は、PHPで利用できる拡張ライブラリです。 PECLはCで記述されているため、PHPで記述されたPEARのライブラリよりも高速に動作します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

5181閲覧

【Mac OS】pecl install intl が失敗する

smnsmn

総合スコア175

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

PECL

PECL(PHP Extension Community Library)は、PHPで利用できる拡張ライブラリです。 PECLはCで記述されているため、PHPで記述されたPEARのライブラリよりも高速に動作します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2017/11/20 04:05

編集2017/11/20 12:22

Mac OS YosemiteとSierraです。
PHP5.6。
ローカルにintlをインストールするために下記コマンドを実行したのですが、

// Xcode Command Line Developer Toolsをインストール xcode-select --install // Homebrew インストール ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" // PEARをインストール sudo php /usr/lib/php/install-pear-nozlib.phar // intlをインストール brew install icu4c sudo pecl install intl

 
sudo pecl install intlが最後下記になって終了します。

2 warnings and 3 errors generated. make: *** [intl_convertcpp.lo] Error 1 ERROR: `make' failed

 
warningの内容としては下記になります。調べたところC++の警告で、コンパイル自体はうまくいっているはず。という記事は見たのですが・・・
解決する方法はあるのでしょうか?

warning: 'COLLATOR_COLLATOR_H' is used as a header guard here, followed by #define of a different macro [-Wheader-guard] #ifndef COLLATOR_COLLATOR_H ^~~~~~~~~~~~~~~~~~~ /private/tmp/pear/temp/intl/collator/collator.h:19:9: note: 'CCOLLATOR_COLLATOR_H' is defined here; did you mean 'COLLATOR_COLLATOR_H'? #define CCOLLATOR_COLLATOR_H ^~~~~~~~~~~~~~~~~~~~ COLLATOR_COLLATOR_H In file included from /private/tmp/pear/temp/intl/php_intl.c:29: /private/tmp/pear/temp/intl/collator/collator_attr.h:18:9: warning: 'COLLATOR_ATTR_H' is used as a header guard here, followed by #define of a different macro [-Wheader-guard] #ifndef COLLATOR_ATTR_H ^~~~~~~~~~~~~~~ /private/tmp/pear/temp/intl/collator/collator_attr.h:19:9: note: 'CCOLLATOR_ATTR_H' is defined here; did you mean 'COLLATOR_ATTR_H'? #define CCOLLATOR_ATTR_H ^~~~~~~~~~~~~~~~ COLLATOR_ATTR_H 2 warnings generated. ~~~~~~ warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] Char16Ptr() = delete; ^ /usr/local/Cellar/icu4c/59.1_1/include/unicode/char16ptr.h:198:24: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] ConstChar16Ptr() = delete; ^ In file included from /private/tmp/pear/temp/intl/intl_convertcpp.cpp:21: In file included from /private/tmp/pear/temp/intl/intl_convertcpp.h:26: /usr/local/Cellar/icu4c/59.1_1/include/unicode/unistr.h:3025:7: error: delegating constructors are permitted only in C++11 UnicodeString(ConstChar16Ptr(text)) {} ^~~~~~~~~~~~~ /usr/local/Cellar/icu4c/59.1_1/include/unicode/unistr.h:3087:7: error: delegating constructors are permitted only in C++11 UnicodeString(ConstChar16Ptr(text), length) {} ^~~~~~~~~~~~~ /usr/local/Cellar/icu4c/59.1_1/include/unicode/unistr.h:3180:7: error: delegating constructors are permitted only in C++11 UnicodeString(Char16Ptr(buffer), buffLength, buffCapacity) {} ^~~~~~~~~~~~~ 2 warnings and 3 errors generated.

 
php -m | grep intlで確認しても表示されないで入っていないのでは無いか?と思っています。
phpはxcode-select --installでコマンドラインツールを入れています。

何か、わかることがあれば教えて頂けますと幸いです。
何卒よろしくお願い致します。

##追記

icu4cをインストールした際に、

For compilers to find this software you may need to set: LDFLAGS: -L/usr/local/opt/icu4c/lib CPPFLAGS: -I/usr/local/opt/icu4c/include

と表示されるのでオプションで指定したり、C++11の指定をしたりのオプションを入れてみましたが、エラーはなくなりませんでした。

sudo pecl install intl -- --with-ldflags=-L/usr/local/opt/icu4c/lib --with-cppflags=-I/usr/local/opt/icu4c/include --with-cxxflags=-std=c++11

下記のように表示されているので認識されていない・無効になっているように思います。
指定方法が間違っているのでしょうか?

Attempting to discover channel "--with-ldflags=-L/usr/local/opt/icu4c"... Attempting fallback to https instead of http on channel "--with-ldflags=-L/usr/local/opt/icu4c"... unknown channel "--with-ldflags=-L/usr/local/opt/icu4c" in "--with-ldflags=-L/usr/local/opt/icu4c/lib" invalid package name/package file "--with-ldflags=-L/usr/local/opt/icu4c/lib" Attempting to discover channel "--with-cppflags=-I/usr/local/opt/icu4c"... Attempting fallback to https instead of http on channel "--with-cppflags=-I/usr/local/opt/icu4c"... unknown channel "--with-cppflags=-I/usr/local/opt/icu4c" in "--with-cppflags=-I/usr/local/opt/icu4c/include" invalid package name/package file "--with-cppflags=-I/usr/local/opt/icu4c/include" parsePackageName(): invalid package name "--with-cxxflags=-std=c++11" in "--with-cxxflags=-std=c++11" invalid package name/package file "--with-cxxflags=-std=c++11"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

brew がインストールされているのだから、phpはbrewでインストールしたのではないですか?

それならば、

sh

1brew search intl

で見つかるはず。

sh

1brew install phpNN-intl

でインストール可能です。

投稿2017/11/20 12:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smnsmn

2017/11/20 12:18

ご回答ありがとうございます! 記載が無く申し訳ありません。 phpはXcode Command Line Developer Toolsのものを使用しており、 xcode-select --install でインストールしております。 php5.6です。 やはりphpもbrewで入れるべきなのでしょうか。 もし何かわかることがございましたら、ご教授頂けますと幸いです。
退会済みユーザー

退会済みユーザー

2017/11/20 12:22 編集

> phpはXcode Command Line Developer Toolsのものを使用しており、 > xcode-select --install > でインストールしております。 xcode-select --install では PHPはインストールできません。 xcode-select --installでインストールするのはあくまで Command line Tools です。
smnsmn

2017/11/20 12:29

ご指摘くださりありがとうございます。 実行したコマンドを追記致しました。 brew install php56 のようなコマンドは実行していないのですが、homebrewを使うのは初めてのため仕組みの理解が浅く申し訳ありません。 もう少し調べてみます。
mkgrei

2017/11/20 13:28

おそらく、 brew install homebrew/php/php54-intl のようにインストールするのが最も簡単です。
smnsmn

2017/11/23 06:54

ありがとうございます。 intlだけbrewで入れて、php.iniに指定して使うことにしました。 ご回答いただき、ありがとうございました。m(_ _)m
guest

0

投稿2017/11/20 05:29

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smnsmn

2017/11/20 11:20

ご回答ありがとうございます。 とても参考になりました。 リンク先のようにintlのmakefileはなかったのですが、その先のオプションを指定する方法などを試しましたがやはり同じエラーが出てしまいます。 試したオプションなどを追記致します。 もし分かることがございましたら、ご教授頂けますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問