Ошибка при запуске файла c ++ - ошибка ввода / вывода - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть код C ++, который уже давно работает нормально. Я только что обновил свой Ma c до macOS Catalina, и теперь примерно в 50% случаев, когда я компилирую, он работает нормально, и в 50% случаев, когда я компилирую и затем запускаю, я получаю

sh: ./file: Input/output error

I не может собрать без проблем. Проблема заключается в выполнении файла.

Я компилирую с g++ -std=c++11 -I ext/ file.cpp -o file -ffast-math -O3 -DEIGEN_STACK_ALLOCATION_LIMIT=0

Я понятия не имею, что происходит или как это исправить. Я могу запустить все остальное вроде бы нормально.

РЕДАКТИРОВАТЬ

Когда я запускаю ls -l, я получаю

-rwxr-xr-x  1 NAME  staff  12872 Feb 27 15:21 ./file

И file ./file возвращает

./compilation_tests/runnable_c_files/3D_P1_non_zero/1/3D_P1_non_zero2: Mach-O 64-bit executable x86_64

Действительно странная вещь заключается в том, что теперь, когда я запускаю в первый раз, я получаю ту же ошибку ввода / вывода. Однако, несмотря ни на что, второй раз, когда я бегу, все идет отлично. Кроме того, если я перекомпилирую, он работает при первом запуске.

НО ... когда я помещаю это в python скрипт (использующий os.system для запуска команд оболочки), он никогда не работает. Мне нужно скомпилировать и запустить дважды из моего терминала.

РЕДАКТИРОВАТЬ # 2

Я запустил простой привет мир и столкнулся с той же ошибкой. Код такой:

#include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
    cout << "Hello world!" << endl;
    return 0;
}

Я компилирую с g++ -std=c++11 test.cpp -o test -ffast-math -O3 -DEIGEN_STACK_ALLOCATION_LIMIT=0 и его перестановками (флаги смешения et c).

И примерно в 50% случаев я получаю ту же ошибку , Это просто аппаратная проблема?

Понятия не имею, что происходит.

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