在 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
当我尝试使用 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