gpt4 book ai didi

c++ - C 编译 : error: stray '\4' in program ; octal flow?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:21:37 24 4
gpt4 key购买 nike

正在尝试编译大量 .c 文件

(1) 文件编译正常,使用 cc

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

(2) 然后,我需要根据最终输出创建一个静态库,以在 C++ 程序中使用。所以我这样做:

ar cru liborientdb-c.a *.o

(3) 工作正常。但是,当我编译包含第 1 行库的 c++ 程序 testme.cpp 时

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

所以,按照其他一些帖子的建议 here ,我相信这些错误可能是由于编码困惑造成的。

所以我使用了“od -c”并尝试跟踪“八进制流”在哪里被弄乱了。使用“od -c”后我的一个 .o 文件的输出看起来很糟糕,所以我认为这可能是原因。

例如。

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

我该如何解决这个问题?我实际上听从了建议here并在我的 lib 源文件上运行

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

响应是文件保持不变(最后修改日期仍然是旧的)。然后我打开我的 .c 文件,看到它们是 UTF-8 格式的,这显然是 ASCII 的一个子集。所以这似乎没有问题。

但是 .o 文件看起来仍然很奇怪。

如何进行???

最佳答案

#include "liborientdb-c.a"

.a 文件不是C 源文件。甚至是文本文件。

通常,.a 文件被添加到编译的最后一个链接行。

cc -o something file.o file2.o liborientdb-c.a 等等

关于c++ - C 编译 : error: stray '\4' in program ; octal flow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40126925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com