我在安装一些python模块时遇到了这个问题,这些模块依赖于它们自己的C库。问题是,cc
根本没有查看/usr/local/include
的头文件。我通过添加/usr/local/include
作为外部包含目录之一,使其适用于其中一个(认为这是模块的问题)。
然后,为了测试,我编写了一个简单的hello.c
文件并添加了#include "fftw3.h"
/ #include <fftw3.h>
,如果我没有明确添加-I/usr/local/include
,则无法编译。< / p>
我在~/.bash_profile
中添加了一行,以便将目录路径包含到$PATH
;也没用。
所以,我的问题是,如何让cc
在/usr/local/include
(或者,就此而言,在任何自定义目录中)中查找头文件总是不传递-I
标志?
仅供参考:我正在使用运行OSX 10.11的macbook pro
答案 0 :(得分:2)
如果您正在使用GCC,那么您可以使用三个环境变量:
CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
看看here。
编辑:既然你指定了你正在使用OS X(因此是Clang),那么它们也应该得到支持,看看结尾here。让Clang模仿GCC规范只是为了帮助兼容性并不罕见。
答案 1 :(得分:0)
我认为你应该投入一些时间来理解构建系统。例如gnu make。在这里,看看这个:
CC = gcc
CFLAGS = -Wall
DEPS = primes.h
OBJ = go.o primes.o
%.o: %.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $<
go: $(OBJ)
gcc $(CFLAGS) -o $@ $^
这会给你:
有更多信息here。