这可能是Android特定的问题,我不知道。
我有一个.a文件,它是构建的结果(V8构建是特定的)。从here,我认为.a文件是'档案',因此包含来自目标文件的相关位。由于我认为它们是档案,因此我将它们移动到另一台机器上以进行Android特定构建。但是,当我尝试构建一个Android本机库时,我收到以下错误:
错误:无法打开/data/v8_3_26/out/android_arm.release/obj.target/v8_base.arm/src/api.o:没有这样的文件或目录
如果我明确复制.o文件(并将它们放在上面显示的硬编码路径中),我的Android版本工作正常。所以我有几个问题。
答案 0 :(得分:2)
这实际上是this question的副本。但是,我会在这里提供更多信息。
根据ar documentation,存档文件(.a文件)可以是正常的或精简的。对于' thin',档案实际上并不包含已归档文件的内容。
相反,当.a存档是精简存档时,它包含符号索引和对存档成员文件的原始副本的引用。
对于V8版本,存档很薄,因此不包含目标文件。这就是链接器运行时ld需要它们的原因。