CentOS 7中编译libcurl C++程序时curl/curl.h头文件找不到的解决方法
解决CentOS 7编译libcurl C++程序时
curl/curl.h: No such file or directory错误 嗨,我来帮你搞定这个问题!你遇到的报错本质是只装了libcurl的运行时库,缺少编译C++程序必需的开发包(头文件、编译依赖库这些),下面是一步步的解决步骤:
1. 安装libcurl开发包
在CentOS 7里,libcurl这个包只包含程序运行时需要的库文件,编译代码时得装对应的开发包libcurl-devel,执行这个命令就行:
sudo yum install libcurl-devel -y
安装完成后,curl/curl.h头文件就会出现在/usr/include/curl/目录下,编译时编译器就能找到它了。
2. 修正编译命令
另外注意你之前的编译命令写错了——把g++给漏掉了!正确的编译命令应该是:
g++ somefile.cpp -lcurl -std=c++11 -o somefile
这里-lcurl是告诉编译器要链接libcurl库,-std=c++11指定用C++11标准编译,这样就能顺利完成编译了。
3. 关于LD_LIBRARY_PATH的小说明
你之前在Ubuntu上用LD_LIBRARY_PATH的方法,是用来解决程序运行时找不到动态库的问题,而这次的错误是编译阶段找不到头文件,所以这个方法对当前问题没用哦。如果之后运行编译好的程序时遇到动态库找不到的情况,再考虑调整这个环境变量或者用ldconfig,不过CentOS 7默认安装的libcurl库在/usr/lib64/,这个路径本来就在系统默认的库搜索列表里,一般不需要额外配置。
验证安装效果
安装完开发包后,你可以用这个命令确认头文件是否存在:
ls /usr/include/curl/curl.h
如果输出了文件路径,就说明头文件已经到位啦。
内容的提问来源于stack exchange,提问作者p.luck
相关产品推荐
相关产品推荐

