Xcode 在mac上,默认情况下,g++(clang)无法搜索/usr/local/include和/usr/local/lib

Xcode 在mac上,默认情况下,g++(clang)无法搜索/usr/local/include和/usr/local/lib,xcode,macos,gcc,clang,Xcode,Macos,Gcc,Clang,我在mac电脑上,用自制软件安装gmp 然后我明确告诉g++使用/usr/local/lib 因此,唯一的问题似乎是g++未能确认/usr/local 但是一直把这些都打出来是很乏味的,尤其是当我正在编写小的单文件程序的时候 我有没有办法让g++在默认情况下确认/usr/local中的内容?自制软件用户有没有标准的方法 我使用的是带有Xcode 5.1.1的OS X 10.9.3,以防相关。尝试运行Xcode select-install 至少在Mavericks上,我发现如果我在没有安装命令行

我在mac电脑上,用自制软件安装gmp

然后我明确告诉g++使用/usr/local/lib

因此,唯一的问题似乎是g++未能确认/usr/local

但是一直把这些都打出来是很乏味的,尤其是当我正在编写小的单文件程序的时候

我有没有办法让g++在默认情况下确认/usr/local中的内容?自制软件用户有没有标准的方法

我使用的是带有Xcode 5.1.1的OS X 10.9.3,以防相关。

尝试运行Xcode select-install


至少在Mavericks上,我发现如果我在没有安装命令行工具的情况下安装Xcode应用程序,那么这些工具在某种程度上是可用的,但是普通的unix ey构建无法正常工作。一个症状是/usr/local/include不在include搜索路径上。命令行工具似乎解决了这个问题。

我也使用自制软件,在Mac OSX Maverick 10.9.5和Xcode 6.0.1上也遇到了类似的问题,但通过运行:

xcode选择-安装

请注意,如果没有前面答案中给出的双连字符,它将无法工作。这将安装同时创建/usr/lib/和/usr/include/的命令行工具。我不知道为什么Homebrew在安装时不会自动检查这个,因为它会检查Xcode

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


cpp-v

一个解决办法是:

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

至少这欺骗了预处理器在这里的行为:

我有Yosemite 10.10.5,运行xcode select-install并没有为我解决问题。随xcode select返回的命令:错误:已安装命令行工具,请使用软件更新安装更新


当我运行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

使用makefile怎么样?请不要再说g++,你调用的程序是通过苹果提供的一个令人困惑的别名clang++,你的问题与gcc无关。如果你真的安装了一个真正的gcc,它可能会像你期望的那样工作。$sudo rm-rf Applications/Xcode.app在10.12.6中为我工作。你可以使用g++-version来查看你实际运行的内容。这对我构建nginx很有效,尽管openssl/ssl.h在/opt/local/include中,所以我使用了这个路径。导出库路径也可能很有用。使用cmake,将目录/usr/local/include/works导出到我的英雄!在过去的16个小时里,我一直在绞尽脑汁,只用一句话就解决了。我很难理解为什么苹果会在默认情况下停止搜索/usr和/usr/local,但无论如何,这也解决了我的一些构建问题。这才是真正的英雄!我猜你的意思是:这安装了同时搜索/usr/lib/和/usr/include/?的命令行工具。当我尝试此操作时,clang再也找不到一些重要的标准库文件。不清楚这个问题是如何解决的,如果删除Xcode,所有编译器都将消失。对于看到这一点的人,不要尝试。
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
export C_INCLUDE_PATH=/usr/local/include
export CPLUS_INCLUDE_PATH=/usr/local/include
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