mat*_*ots 41 macos xcode gcc clang
我在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.
Run Code Online (Sandbox Code Playgroud)
所以我明确告诉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)
Run Code Online (Sandbox Code Playgroud)
所以我明确告诉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
Run Code Online (Sandbox Code Playgroud)
所以唯一的问题似乎是g++没有承认/usr/local.
但是一直输入所有这些是很繁琐的,特别是当我只是编写小型单文件程序时.
有没有办法让我默认g++承认这些东西/usr/local?homebrew用户是否有标准方式执行此操作?
我在OS X 10.9.3上使用Xcode 5.1.1以防它相关.
小智 62
我也使用Homebrew并在Mac OSX Maverick 10.9.5和Xcode 6.0.1上遇到了类似的问题,但它通过运行来解决:
xcode-select --install
请注意,如果没有前一个答案给出的双连字符,它就不起作用.这将安装也创建/usr/lib/和的命令行工具/usr/include/.我不知道为什么Homebrew在安装时不会自动检查这个,因为它会检查Xcode ...
如果要确切查看编译器查找头文件的文件夹,可以编写:
cpp -v
Rus*_*wen 10
试试跑步 xcode-select install
至少在Mavericks上我发现如果我在没有安装命令行工具的情况下安装XCode应用程序,那么这些工具是可用的,但是正常的unix-ey构建无法正常工作.一个症状是/usr/local/include不在包含搜索路径上.命令行工具似乎可以解决此问题.
小智 8
解决方法是:
export C_INCLUDE_PATH=/usr/local/include
export CPLUS_INCLUDE_PATH=/usr/local/include
Run Code Online (Sandbox Code Playgroud)
至少这欺骗了预处理器在这里表现:)