我是Linux的新手,我试图编译一个库。 CMAKE可以很好地进行配置,但是使用make编译时会出现如下错误:
错误:在此范围内未声明“ ____stat64” ____stat64 statbuf; 错误:未在此范围内声明“ ____stat64” ____stat64 statbuf; 错误:未在此范围内声明“ getcwd” 如果(NULL!= getcwd(chFile,_MAX_PATH))
也许我的头文件丢失了吗?我的gcc版本是 螺纹型号:posix gcc版本5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1〜16.04.11)
谢谢, 英戈
答案 0 :(得分:1)
如果您在终端中输入man 3p getcwd
,则会发现您需要
#include <unistd.h>
调用getcwd。
现代的C ++跨平台方法是使用filesystem
标头和current_path()
函数。
答案 1 :(得分:0)
验证您的计算机上安装了Linux标头。为了确保已安装它们,请在基于Debian的发行版上运行:
sudo apt-get install linux-headers-generic
还要验证您是否已包含Michael Surette所显示的unistd
标头。为了清楚起见,您将在下面的代码中包含提到的标题:
#include <unistd.h>
int main() {
...
}