尝试从源代码编译git后,我在项目根目录下运行make命令时遇到了以下错误:
44stonelions@pop-os:~/dev/git$ make
CC oss-fuzz/fuzz-commit-graph.o
In file included from ./commit-graph.h:4,
from oss-fuzz/fuzz-commit-graph.c:1:
./git-compat-util.h:380:10: fatal error: openssl/ssl.h: No such file or directory
380 | #include <openssl/ssl.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:2720: oss-fuzz/fuzz-commit-graph.o] Error 1
克隆openssl并为openssl项目运行make install后,ssl.h
头文件现在存在于/usr/local/include/openssl
中,现在当我在git根目录下运行make时,它可以找到ssl.h
文件,尽管我不需要提供关于这个文件在哪里的任何信息。
- 默认情况下,make在linux上的哪里搜索包含的头文件?
- 是否有任何方法来检查或配置它正在搜索的目录?
我是Linux的新手,不太了解文件系统,如果我知道在哪里安装了东西就好了。
1条答案
按热度按时间vq8itlhq1#
不是
make
在搜索头文件,而是gcc
。默认情况下,它也在/usr/local/include
中搜索头文件。您可以通过让编译器告诉您来检查搜索的目录列表,如下所示:上面的命令行告诉编译器在预处理后停止,同时从
stdin
输入空值。这个技巧允许获得编译器的默认值,尽管它是特定于GCC的。