У меня есть код 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% случаев я получаю ту же ошибку , Это просто аппаратная проблема?
Понятия не имею, что происходит.