- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
正在尝试编译大量 .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/19149060/
我在 angular 7 中工作并使用验证联系电话 "^(?!(\d)\1+$)(?:\(?\+\d{1,3}\)?[- ]?|0)?\d{10}$" 正则表达式,但它抛出以下错误:模块解析失败:严格
int arr[20][20] = { {08,02,22,97,38,15,00,40,00,75,04,05,07,78,52,12,50,77,91,08
更新:根据目前的评论和回复,我想我应该明确表示我理解 0700 是十进制数 448 的八进制表示。我关心的是当一个八进制mode 参数,或者当一个十进制数被重铸为八进制数并传递给 os.FileMod
更新:根据目前的评论和回复,我想我应该明确表示我理解 0700 是十进制数 448 的八进制表示。我关心的是当一个八进制mode 参数,或者当一个十进制数被重铸为八进制数并传递给 os.FileMod
我正在学习 C 编程,但我不知道这个程序出了什么问题 构建消息中的错误代码是 错误:八进制常量中的数字“8”无效。 谁能帮忙,谢谢 =) #include #include int ch ; in
我没有在 C 标准中找到解释如何处理上述宽字符串中的转义序列。 例如: wchar_t *txt1 = L"\x03A9"; wchar_t *txt2 = L"\xA9\x03"; 这些是否以某种方
我有一个 java 程序,需要 tar/gz 大量数据(14 gigs),并且我正在使用 commons-compress。这将是每周重复发生的工作并且是自动化的。 当我尝试压缩这种大小的东西时,我得
我启动了一个脚本,但收到一条错误消息。我通常有正确的想法,但语法或格式不正确。 以下是给出的确切说明: 通过添加一个名为 to_oct 的方法来扩展 Integer 类,该方法返回一个表示八进制整数的
我尝试安装软件包(实际上是 pdbDEMO 和所有依赖项),但遇到了一个我无法解决的问题,也没有找到任何解决方案。 我使用 R 命令: >install.packages("pbdDEMO", lib
我正在编写一个执行二次公式的程序。我唯一的问题是程序的实际格式。允许我输入加减号和平方根符号的 alt 键给我带来了一些问题。 问题存在于 cout<< 0-b << char(241) << cha
我正在尝试遍历这些数组,但收到此错误“严格模式下不允许使用旧版八进制文字” const myList =[ { id: 01, title: 'FrontEnd
我正在尝试向项目添加redux开发工具(以便可以更好地使用ngrx 4)。 我在网上看了如何向 Electron 中添加开发工具,发现了两种方法: 1)使用 Electron 开发工具安装程序 ele
正在尝试编译大量 .c 文件 (1) 文件编译正常,使用 cc cc -Wall -Wextra -Wunreachable-code -ggdb -O0 *.c (2) 然后,我需要根据最终输出创建
正在尝试编译大量 .c 文件 (1) 文件编译正常,使用 cc cc -Wall -Wextra -Wunreachable-code -ggdb -O0 *.c (2) 然后,我需要根据最终输出创建
在我们的用例中,我们将获取格式如下的 UTF-8 文本数据: Data1§Data2 Data3§Data4 现在我们希望在 Apache Hive 中将 Data1 和 Data3 放在一列中,将
我有以下代码 fs.createWriteStream( fileName, { flags: 'a', encoding: 'utf8', mode: 0644 }); 我收到一个 li
这个问题已经有答案了: Why are Octal numeric literals not allowed in strict mode (and what is the workaround?)
我有 twitter bootstrap 设置来构建一个新元素,但是我从 VS2010 收到以下错误。 fatal error ,无法继续:八进制转义序列仅在 ECMAScript 3 兼容模式下受支
我有一个 html 表格,我正在使用 javascript 将其传递到 Excel 文件。我正在使用从 https://github.com/jmaister/excellentexport 下载的
当我推送到 heroku master 时,我的部署失败并出现以下错误: remote: { SyntaxError: /tmp/build_396711075a2ae75358d2c942f9c73
我是一名优秀的程序员,十分优秀!