Linux gcc编译问题

问题描述 投票:0回答:2

我是Linux的新手,我试图编译一个库。 CMAKE非常适合配置,但是在使用make编译时,我会收到如下错误:

错误:'____stat64'未在此范围____stat64 statbuf中声明;错误:'____stat64'未在此范围____stat64 statbuf中声明;错误:'getcwd'未在此范围内声明if(NULL!= getcwd(chFile,_MAX_PATH))

也许我有丢失头文件的问题?我的gcc版本是Thread模型:posix gcc版本5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1~16.04.11)

谢谢,Ingo

c++ linux gcc
2个回答
0
投票

验证您的计算机上是否安装了linux标头。要确保它们已安装,请在基于Debian的发行版上运行:

sudo apt-get install linux-headers-generic

同时验证您是否包括unistd标题,正如Michael Surette已经展示的那样。为清楚起见,您将包括下面提到的标题:

#include <unistd.h>

int main() {
    ...
}

1
投票

如果您在终端中键入man 3p getcwd,您会发现您需要

#include <unistd.h>

调用getcwd。

现代C ++跨平台的方法是使用filesystem头和current_path()函数。

© www.soinside.com 2019 - 2024. All rights reserved.