我是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
验证您的计算机上是否安装了linux标头。要确保它们已安装,请在基于Debian的发行版上运行:
sudo apt-get install linux-headers-generic
同时验证您是否包括unistd
标题,正如Michael Surette已经展示的那样。为清楚起见,您将包括下面提到的标题:
#include <unistd.h>
int main() {
...
}
如果您在终端中键入man 3p getcwd
,您会发现您需要
#include <unistd.h>
调用getcwd。
现代C ++跨平台的方法是使用filesystem
头和current_path()
函数。