在mac上,g ++(clang)默认不能search/ 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上,以防万一。

我也使用自制软件,并在Mac OSX Maverick 10.9.5和Xcode 6.0.1上有类似的问题,但它是通过运行解决:

xcode-select --install

请注意,如果没有上一个答案给出的双连字符,它将不起作用。 这将安装也创build/usr/lib//usr/include/的命令行工具。 我不知道为什么自制软件安装时不会自动检查,因为它确实检查Xcode …

如果你想检查你的编译器正在寻找哪些文件夹的头文件,你可以写:

cpp -v

尝试运行xcode-select install

至less在我发现的小牛队中,如果我安装了XCode应用程序而没有安装命令行工具,那么这些工具是可用的,但是普通的unix-ey版本无法正常工作。 一个症状是/usr/local/include不在includesearchpath上。 命令行工具似乎可以解决这个问题。

解决方法是:

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

至less这欺骗了预处理器在这里performance:)

我有约塞米蒂10.10.5和运行xcode-select --install没有解决我的问题。 使用xcode-select: error: command line tools are already installed, use "Software Update" to install updates返回的xcode-select: error: command line tools are already installed, use "Software Update" to install updates

当我运行xcode-select -p ,它显示/Applications/Xcode.app/Contents/Developer 。 我最终从Applications目录中删除Xcode,导致xcode-select -p返回/Library/Developer/CommandLineTools 。 这固定的编译器错误对我来说。