C Компиляция: ошибка: отклонение '\ 4' в программе; восьмеричный поток?
Попытка скомпилировать загрузку файлов .c
(1) файлы компилируются нормально, используяcc
cc -Wall -Wextra -Wunreachable-code -ggdb -O0 *.c
(2) Затем мне нужно сделать статическую библиотеку из конечного вывода для использования в программе на c ++. Итак, я делаю:
ar cru liborientdb-c.a *.o
(3) Работает нормально. Однако, когда я пришел к компиляции программы на С ++ testme.cpp, которая включает библиотеку в строке # 1
(line 1 of testme.cpp)
#include "liborientdb-c.a"
Шаг компиляции:
cc testme.cpp
я получаю эту ошибку:
liborientdb-c.a:117:22: error: stray '\3' in program
liborientdb-c.a:117:263: warning: null character(s) ignored [enabled by default]
liborientdb-c.a:117:22: error: stray '\17' in program
liborientdb-c.a:117:265: warning: null character(s) ignored [enabled by default]
liborientdb-c.a:117:283: warning: null character(s) ignored [enabled by default]
liborientdb-c.a:117:22: error: stray '\22' in program
liborientdb-c.a:117:287: warning: null character(s) ignored [enabled by default]
liborientdb-c.a:117:22: error: stray '\1' in program
liborientdb-c.a:117:289: warning: null character(s) ignored [enabled by default]
liborientdb-c.a:117:22: error: stray '\362' in program
....
Итак, следуя советам на некоторых других постахВотЯ считаю, что ошибки могут быть из-за испорченной кодировки.
Так что я использовал 'od -c' и попытался отследить, где "восьмеричный поток" запутался. Вывод для одного из моих .o файлов после 'od -c' выглядит довольно плохо, поэтому я думаю, что это может быть причиной.
НАПРИМЕР.
0000000 177 E L F 002 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000020 001 \0 > \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000040 \0 \0 \0 \0 \0 \0 \0 \0 ` ( \0 \0 \0 \0 \0 \0
0000060 \0 \0 \0 \0 @ \0 \0 \0 \0 \0 @ \0 026 \0 023 \0
0000100 U H 211 ? H 203 ? 020 H 211 } ? H 211 u ?
0000120 H 213 E ? H 213 \0 H 213 @ \b H 205 ? t 023
0000140 H 213 E ? H 213 \0 H 213 @ \b H 211 ? ? \0
Как я могу это исправить, хотя? Я действительно следовал советуВот и побежал по моим исходным файлам lib
recode UTF8..ISO-8859-15 *.c
Ответ - файлы остаются без изменений (дата последнего изменения все еще старая). Затем я открываю свои файлы .c и вижу, что они находятся в UTF-8, который, очевидно, является подмножеством ASCII. Так что, казалось бы, нет проблем.
Но файлы .o по-прежнему выглядят странно.
Как продолжить ???