Kompilacja C: błąd: zbłąkany '4' w programie; przepływ ósemkowy?

Próbuję skompilować ładowanie plików .c

(1) Pliki kompilują się, używająccc

cc -Wall -Wextra -Wunreachable-code -ggdb -O0 *.c 

(2) Następnie muszę utworzyć statyczną bibliotekę z ostatecznego wyjścia, aby użyć jej w programie c ++. Ja również:

ar cru liborientdb-c.a *.o

(3) Działa dobrze. Jednak gdy przychodzę skompilować program c ++ testme.cpp, który zawiera bibliotekę w linii # 1

(line 1 of testme.cpp)
#include "liborientdb-c.a"

Krok kompilacji:

cc testme.cpp

mam ten błąd:

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
....

Tak więc, postępując zgodnie z radą na niektórych innych postachtutaj, wierzę, że błędy mogą być spowodowane błędnym kodowaniem.

Użyłem więc „od -c” i spróbowałem prześledzić, gdzie „przepływ ósemkowy” jest zawalony. Dane wyjściowe jednego z moich plików .o z „od -c” wyglądają dość źle, więc myślę, że to może być powód.

NA PRZYKŁAD.

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

Jak mogę to naprawić? Właściwie zastosowałem się do radytutaj i uruchomiłem moje pliki źródłowe lib

recode UTF8..ISO-8859-15 *.c

Odpowiedź brzmi: pliki pozostają niezmienione (data ostatniej modyfikacji jest nadal stara). Otwieram więc pliki .c i widzę, że są w UTF-8, który jest najwyraźniej podzbiorem ASCII. Więc to nie wydaje się być problemem.

Ale pliki .o nadal wyglądają dziwnie.

Jak kontynuować ???

questionAnswers(2)

yourAnswerToTheQuestion