在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
。 这固定的编译器错误对我来说。