Вот простой пример экземпляра этой ошибки.Содержимое файла с именем new.cpp:
#include <iostream>
int main(int argc, char *argv[])
{
std::cout << "Brand new." << std::endl;
return 0;
}
Теперь скомпилируйте его:
ppu32-g++ new.cpp -o new
Нет проблем.Давайте скомпилируем это снова:
ppu32-g++ new.cpp -o new
OMG!Экран за экраном ошибок!Большинство этих ошибок выглядят так:
./new:1: error: stray '\177' in program
Проблема заключается в том, что компилятор пытается использовать файл new в текущем каталоге в качестве стандартной библиотеки C ++ <new>
;используется <iostream>
.Фактически любой файл в текущем каталоге, названный в честь заголовка стандартной библиотеки C ++, который используется в компилируемом коде, скорее всего, вызовет ошибку.То, что наш проблемный файл является исполняемым файлом, скрывает сообщения об ошибках.
Это происходит не на всех машинах gcc, которые я пробовал.ppu32-g++
4.1.1 на PS3 Cell Fedora Linux наверняка задохнется.