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

标签 c linux gcc curl centos

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

[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 <security/pam_modules.h> 的错误如果我一直注释掉 include 指令,因为 includes 列表位于 some.c 的顶部是:

#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

关于c - 在 CentOS 中 gcc 编译 c 程序时缺少包含文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32258409/

相关文章:

冲突的类型与不兼容的隐式声明

c - rand() 每次给出几乎相同的数字

c - 请建议设计实现: dynamically updating list of items

c++ - C 是否有像 C++ 一样的定义规则?

linux - 基于文件名的目录,然后将关联的文件移动到正确的目录以获得随机名称

configure 尝试测试运行一个交叉编译的程序

c - 如何用C获取设备的地址

linux - x86 反汇编中 <<< 和 >>> 的含义

linux - 在 ubuntu 10.04(linux) 安装 xml 编辑器

gcc - 我应该如何让 gcc 在进入函数的过程中将堆栈指针重新对齐到 16 字节边界?