Linux GCC проблемы с компиляцией - PullRequest
0 голосов
/ 15 января 2019

Я новичок в Linux и попытался скомпилировать библиотеку. CMAKE прекрасно работает для настройки, но при компиляции с make я получаю такие ошибки:

ошибка: this ____stat64 ’не было объявлено в этой области ____stat64 statbuf; ошибка: ____ ____stat64 ’не был объявлен в этой области ____stat64 statbuf; ошибка: «getcwd» не был объявлен в этой области if (NULL! = getcwd (chFile, _MAX_PATH))

Может быть, у меня проблема с отсутствующими заголовочными файлами? Моя версия gcc Модель потока: posix gcc версия 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.11)

Спасибо, Инго

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Убедитесь, что на вашем компьютере установлены заголовочные файлы linux. Чтобы убедиться, что они установлены, в дистрибутивах на основе Debian запустите:

sudo apt-get install linux-headers-generic

Также убедитесь, что вы включаете заголовок unistd, как Майкл Суретт уже показал. Для ясности вы бы включили заголовок, упомянутый в коде ниже:

#include <unistd.h>

int main() {
    ...
}
0 голосов
/ 15 января 2019

Если вы наберете man 3p getcwd в терминале, вы найдете, что вам нужно

#include <unistd.h>

для вызова getcwd.

Современный кроссплатформенный способ C ++ для этого - использовать заголовок filesystem и функцию current_path().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...