在 CentOS 中 gcc 编译 c 程序时缺少包含文件

missing include files during gcc compilation of c program in CentOS

当我尝试使用 gcc 在 CentOS 7 服务器上编译名为 some.c 的 c 程序时,出现以下有关缺少包含库的错误,如下所示。 如何解决这些错误,以便程序正确编译?

[user@domain ~]$ gcc -fPIC -lcurl -c some.c
some.c:10:23: fatal error: curl/curl.h: No such file or directory
#include <curl/curl.h>
compilation terminated. 

当我注释掉 #include <curl/curl.h> 并重试时,我得到:

[user@domain ~]$ gcc -fPIC -lcurl -c some.c
some.c:11:31: fatal error: security/pam_appl.h: No such file or directory
#include <security/pam_appl.h>
compilation terminated.

我想如果我一直注释掉 include 指令,我会得到 #include <security/pam_modules.h> 的另一个错误,因为作为 some.c 顶部的 include 列表是:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include <security/pam_appl.h>
#include <security/pam_modules.h>

在Java中,导入由jvm/jdk处理,所以你不必担心这种事情。或者,如果它不是核心库,则使用 maven。或者将所有 jar 依赖项放在标记为类路径的文件夹中。这个 c 问题有一些简单的解决方案,比如 yum install clibs 吗?或者我是否必须手动将库移动到某个目录? 如何解决这些编译错误,以便 gcc 可以成功编译 some.c 程序?

您需要安装curl和pam开发包:

sudo yum install curl-devel
sudo yum install pam-devel