Совместимость C ++ между Visual Studio и gcc под Linux - PullRequest
3 голосов
/ 24 марта 2011

Я пытаюсь построить проект, написанный на VS 2008, используя QtCreator под Linux, и я получаю множество ошибок:

/home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: error: stray ‘\377’ in program
/home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: error: stray ‘\376’ in program
/home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: error: stray ‘#’ in program
/home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: warning: null character(s) ignored

и т.д.

Значит ли это, что компилятор не может правильно обрабатывать юникод? Как я могу это исправить?

Ответы [ 4 ]

6 голосов
/ 24 марта 2011

Это выглядит как UTF-16 BOM для UTF-16 с прямым порядком байтов.Вам нужно убедиться, что файл сохранен как UTF-8 или преобразовать его вручную с помощью iconv -f UTF-16LE -t UTF8 myfile.

1 голос
/ 24 марта 2011

Убедитесь, что файл закодирован в UTF-8. Откройте его в текстовом редакторе, который позволяет выбрать кодировку файла (например, gedit или notepad ++) и преобразовать его. У меня раньше были подобные проблемы, но файлы UTF-8 работают нормально (другие кодировки, такие как UTF-16, не будут работать).

Редактировать: Не конвертировать ваш ресурсный скрипт (если есть) в UTF-8. Компилятор ресурсов не сможет прочитать его (по крайней мере, при использовании MSVC 2008).

0 голосов
/ 24 марта 2011

Я думаю, что видел "заблудившийся ..." в файле с юникодом.

Чтобы исправить это, вы можете настроить кодировку вашего редактора или консоли (или обоих).

0 голосов
/ 24 марта 2011

Возможно, в ваших файлах используется кодировка Windows с такими символами, как ^ M, \ r \ n ... Вы пытались запустить dos2unix в ваших исходных файлах перед компиляцией?

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