web-dev-qa-db-ja.com

Macでは、g ++(clang)はデフォルトで/ usr / local / includeおよび/ usr / local / libの検索に失敗します

私はMacを使用しています。homebrewを使用してgmpをインストールしました。

Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx
In file included from main.cpp:2:
./gcjlib.hpp:4:10: fatal error: 'gmpxx.h' file not found
#include <gmpxx.h>
         ^
1 error generated.

そこで、g++を使用するように明示的に/usr/local/includeに指示しました

Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx -I/usr/local/include
ld: library not found for -lgmp
clang: error: linker command failed with exit code 1 (use -v to see invocation)

そこで、g++を使用するように明示的に/usr/local/libに指示しました

Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx -I/usr/local/include -L/usr/local/lib
Kyumins-iMac:gcjlib math4tots$ ./a.out 
sum is -4444
absolute value is 4444

そのため、唯一の問題は、g++/usr/localの確認に失敗することです。

しかし、特に私が小さな単一のファイルプログラムを書いているときは特に、このすべてを常に入力するのは退屈です。

デフォルトでg++の内容を確認するために/usr/localを取得する方法はありますか? homebrewユーザーがこれを行う標準的な方法はありますか?


関連する場合に備えて、Xcode 5.1.1を搭載したOS X 10.9.3を使用しています。

40
math4tots

Homebrewも使用していますが、Mac OSX Maverick 10.9.5およびXcode 6.0.1でも同様の問題がありましたが、次を実行することで解決しました。

xcode-select --install

前の答えで与えられた二重ハイフンなしでは機能しないことに注意してください。これにより、/usr/lib/および/usr/include/も作成するコマンドラインツールがインストールされます。 HomebrewはXcodeをチェックするため、Homebrewがインストール時にこれを自動的にチェックしない理由はわかりません...

コンパイラがヘッダーファイルを探しているフォルダーを正確に確認する場合は、次のように記述できます。

cpp -v

60
Jonas Sellberg

xcode-select installを実行してみてください

少なくともMavericksでは、コマンドラインツールをインストールせずにXcodeアプリケーションをインストールすると、ツールが利用できるようになりますが、通常のunix-eyビルドは正しく動作しません。 1つの症状は、/usr/local/includeが検索パスに含まれていないことです。コマンドラインツールは、この問題を解決するようです。

10
Russell Owen

回避策は次のとおりです。

export C_INCLUDE_PATH=/usr/local/include
export CPLUS_INCLUDE_PATH=/usr/local/include

少なくともこれにより、プリプロセッサがここで動作するようにだまされました:)

8
Philippe

Yosemite 10.10.5を使用していますが、xcode-select --installを実行しても問題は解決しませんでした。コマンドはxcode-select: error: command line tools are already installed, use "Software Update" to install updatesで返されました。

xcode-select -pを実行すると、/Applications/Xcode.app/Contents/Developerと表示されました。アプリケーションディレクトリからXcodeを削除すると、xcode-select -p/Library/Developer/CommandLineToolsを返しました。これにより、コンパイラエラーが修正されました。

3
mchan

それは私にとって役に立ちました。

最新バージョンを使用してください。 1.0.2o_1ちょうど現在のビルド。

brew install openssl
ln -s /usr/local/Cellar/openssl/1.0.2o_1/include/openssl /usr/local/include/openssl
ln -s /usr/local/Cellar/openssl/1.0.2o_1/lib /usr/local/lib/openssl
1
Vyacheslav