将 file.lib 构建为可在 linux 上使用的 file.a

Posted

技术标签:

【中文标题】将 file.lib 构建为可在 linux 上使用的 file.a【英文标题】:build a file.lib to a file.a usable on linux 【发布时间】:2012-12-14 10:50:15 【问题描述】:

我正在尝试将 api 从 windows 移植到 linux。到目前为止,我已经完成了 file.cpp 和 file.h 的工作,但我仍然有一个指定给 windows 的库 .lib,这是 api 工作所必需的。如何从这个库中构建一个在 linux 上可用的 file.a?

【问题讨论】:

你不能像那样移植编译好的二进制文件。除了可能需要付出很大的努力或使用专门的工具。 【参考方案1】:

Linux(或所有 POSIX 系统,如 Mac OSX)中的静态库实际上是包含所有目标文件的存档。这些档案是使用ar 命令创建的:

ar crv some_library.a some_object_file.o

上述命令从目标文件some_object_file.o 创建“归档”(即静态库)some_library.a。现在可以在链接其他程序时使用此库。

【讨论】:

抱歉,我如何使用我的 file.lib 来生成这些?我是 linux 新手。 @SamuelNLP 您不需要,您需要用于生成原始库文件的目标文件。但是,您不能使用为 Windows 编译的文件,您需要在 Linux 机器上编译源代码。 @SamuelNLP 要么是那个(当且仅当它们是为 Linux 构建的),要么是源代码。 好吧,如果我有来源,你能告诉我如何继续吗?我有点迷路了。 @SamuelNLP Google 是你的朋友...如果它是第三方库,请搜索该库的构建说明(或者如果供应商提供,则作为供应商),否则搜索如何创建“makefile” " 和一般的 Linux/UNIX/POSIX 编译教程。

以上是关于将 file.lib 构建为可在 linux 上使用的 file.a的主要内容,如果未能解决你的问题,请参考以下文章

如何在 os x 上使 Boost dylibs 通用(i386 和 x86_64)?

如何在 Swift 上使这段代码异步

Linux运维---shell脚本练习串烧1

VRPN C++ 代码可在 Linux 上编译,但不能在 Windows 上编译

PHP jQuery:在密码字段中显示纯文本,然后在焦点上使其成为常规密码字段

我们是如何使用 Electron 构建 Linux 桌面应用程序的