【发布时间】:2012-12-14 10:50:15
【问题描述】:
我正在尝试将 api 从 windows 移植到 linux。到目前为止,我已经完成了 file.cpp 和 file.h 的工作,但我仍然有一个指定给 windows 的库 .lib,这是 api 工作所必需的。如何从这个库中构建一个在 linux 上可用的 file.a?
【问题讨论】:
-
你不能像那样移植编译好的二进制文件。除了可能需要付出很大的努力或使用专门的工具。
我正在尝试将 api 从 windows 移植到 linux。到目前为止,我已经完成了 file.cpp 和 file.h 的工作,但我仍然有一个指定给 windows 的库 .lib,这是 api 工作所必需的。如何从这个库中构建一个在 linux 上可用的 file.a?
【问题讨论】:
Linux(或所有 POSIX 系统,如 Mac OSX)中的静态库实际上是包含所有目标文件的存档。这些档案是使用ar 命令创建的:
ar crv some_library.a some_object_file.o
上述命令从目标文件some_object_file.o 创建“归档”(即静态库)some_library.a。现在可以在链接其他程序时使用此库。
【讨论】: