Ошибка «идентификатор не найден» в Windows, но не в Mac - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть эта функция, которая прекрасно работает в моей ма c, когда при попытке скомпилировать мою программу в Windows я получаю сообщение об ошибке:

std::string myMainWindow::getPlansPath() {
    char cwd[1024];
    if (getcwd(cwd, sizeof(cwd)) != NULL) {
        printf("Current working dir: %s\n", cwd);
    } else {
        perror("getcwd() error");
    }

    std::string path = std::string(cwd) + std::string("/myfolder");

    return path;
}

Ошибка:

C:\path\to\project\gui\myMainWindow.cxx(876): error C3861: 'getcwd': identifier not found
ninja: build stopped: subcommand failed.

Что это может быть?

ОБНОВЛЕНИЕ:

В итоге я использую QDir::currentPath(), что было именно тем, что я хотел.

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

getcwd - это функция UNIX speci c, она не существует в Windows, и тот факт, что она принадлежит библиотеке <unistd.h>, является хорошим намеком на это. Возможное решение было бы использовать _getcwd, хотя я не знаком с его использованием, я собираюсь на странице MSDN, это более или менее то же самое.

0 голосов
/ 18 апреля 2020

Вам придется использовать _getcwd или _wgetcwd в заголовках <direct.h> или <wchar.h> на Windows.

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