Linux gcc编译问题

时间:2019-01-15 16:49:11

标签: c++ linux gcc

我是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)

谢谢, 英戈

2 个答案:

答案 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() {
    ...
}