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 по-прежнему выглядят странно.

Как продолжить ???

Ответы на вопрос(2)

Ваш ответ на вопрос