gpt4 book ai didi

c++ - 如何将多个源文件转换为一个 .a 文件

转载 作者:行者123 更新时间:2023-11-30 00:58:26 28 4
gpt4 key购买 nike

我刚刚发现代码块(和 MingW 编译器)只接受 .a 库文件而不是 .lib 什么是将 .lib 转换为 .a 文件的最简单方法...任何教程等将不胜感激。编辑让我稍微修改一下我的问题,如何将大量源文件转换为一个 .a 存档文件。

最佳答案

回答具体问题,如何将多个源文件转换成一个归档文件进行静态链接;这是一个两步操作。您必须首先将源文件编译为目标文件,然后将目标文件转换为存档。

如果您的 MinGW 安装有 MSYS,我建议使用它。如果没有,您仍然可以使用 Windows 的命令提示符 cmd.exe。

确保您的 MinGW/bin 目录是 PATH 环境变量的一部分,以便您可以从任何地方调用编译器。

从命令行进入包含源代码的目录。从那里输入命令

mingw32-gcc -O2 -c [files] -I[header directory]

您应该将 [files] 具体命名为 -c a.cpp b.cpp c.cpp 或者您可以使用 * 来标识它们。 cpp[header directory] 是源代码的 .h 文件所在的位置,相对于您而言。通常,源文件将位于一个名为/src 的目录中,头文件位于名为/include 的姊妹目录中。您可以将该目录称为 -I../include。如果头文件位于/src 目录中名为/include 的目录中,则它将是 -Iinclude

生成 .o 文件后,键入命令

ar rcs lib[something].a [files]

[something] 替换为库的名称。这是将出现在 Code::Blocks 的链接库对话框中的名称。 Files 可以是你之前创建的目标文件的名称(a.o, b.o, c.o),或者如果目录中没有不相关的目标文件,你可以放入*.o

这应该会导致在目录中创建存档文件。您现在可以将它放在正确的目录中(可能是/include 的姊妹目录/lib),并将该目录添加到您的 Code::Blocks 配置中,在链接器搜索目录下。然后,您必须记住为您的项目实际添加库。

关于c++ - 如何将多个源文件转换为一个 .a 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6167079/

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