私は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を使用しています。
Homebrewも使用していますが、Mac OSX Maverick 10.9.5およびXcode 6.0.1でも同様の問題がありましたが、次を実行することで解決しました。
xcode-select --install
前の答えで与えられた二重ハイフンなしでは機能しないことに注意してください。これにより、/usr/lib/
および/usr/include/
も作成するコマンドラインツールがインストールされます。 HomebrewはXcodeをチェックするため、Homebrewがインストール時にこれを自動的にチェックしない理由はわかりません...
コンパイラがヘッダーファイルを探しているフォルダーを正確に確認する場合は、次のように記述できます。
cpp -v
xcode-select install
を実行してみてください
少なくともMavericksでは、コマンドラインツールをインストールせずにXcodeアプリケーションをインストールすると、ツールが利用できるようになりますが、通常のunix-eyビルドは正しく動作しません。 1つの症状は、/usr/local/include
が検索パスに含まれていないことです。コマンドラインツールは、この問題を解決するようです。
回避策は次のとおりです。
export C_INCLUDE_PATH=/usr/local/include
export CPLUS_INCLUDE_PATH=/usr/local/include
少なくともこれにより、プリプロセッサがここで動作するようにだまされました:)
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
を返しました。これにより、コンパイラエラーが修正されました。
それは私にとって役に立ちました。
最新バージョンを使用してください。 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