题
我有一个问题:我必须打开一个链接文件 .a
延期。我使用dev-c ++。
解决方案
.a
文件是 ar
对象的档案(例如邮编).o
)文件。您可以列出文件 .a
文件使用 ar
程序:
ar t file.a
并提取所有文件:
ar x file.a
其他提示
带有的文件 .a
扩展是使用UNIX文件命名约定的静态库。它们不仅仅是对象代码的索引集合。您不会打开它们太多(除非您有这样的工具 nm
或者 gdb
可用,这两个 能够 用库做明智的事情,即使不一定是您可能想要的),如链接时告诉链接器使用它们。对于大多数链接器,重要的是将所有库(静态和动态/共享)放在您的主要程序代码之后,在链接器命令行上,库的顺序也很重要。
你真的是说你想 打开 该文件,或者您希望 关联 用您的代码?
默认情况下,DEV-C ++是使用MINGW/GCC编译器安装的。如果该档案不是专门为与MingW合作的(例如,它可能是Cygwin或Linux档案),则您将无法将其链接到MINGW生成的代码。
如果存档是MingW/GCC兼容库,则只需将其链接到您的代码即可。在DEV-C ++中,您需要将存档添加到项目链接器选项中,要么通过将完整路径添加到存档(项目选项中有一个按钮),要么通过将存档放置在由A的路径中定义的路径中 -L<path>
选项,然后添加 -l<archive>
选项。请注意,ID存档称为libxxx.a,然后 -l<archive>
选项将是``-lxxx'; “ lib”前缀和“ .a”扩展是隐式的。
如果您只想检查档案以确定其提供的外部符号,则 nm 实用程序可用于此功能。如果要提取单个对象文件,请使用 ar, ,尽管我想不出你想做的一个充分的理由。
尝试 fstream, , 或者 fstream file_op("c:\\test.a",ios::in);
, ,不要忘记包括 fstream.h
.