构建独立的库

Building standalone libraries

本文关键字:独立 构建      更新时间:2023-10-16

我正试图将一个大项目交叉编译到android(太大了,无法将其移植到ndk构建格式)。我来自Java世界,所以我对所有这些编译、C、C++都很陌生。事情是这样的:

这个大项目使用xerces-c作为一个库,这个库在当时依赖于ICU代码转换器。我对它们进行了交叉编译,生成了libxerces-c.a、libicuuc.a和libicudata.a

当我交叉编译我的大项目时,configure会检查头(它们是)和xerces-c库。但是,当我运行make命令时,执行失败,因为-licuuc-licudata不在编译命令上。

有没有一种方法可以创建一个包括libicuuc和libicudata的独立libxerces-c?我可以包括在CFLAGS、CXXFLAGS或LDFLAGS中的一些标志?配置脚本上的某个参数?

由于我对这方面还很陌生,举个例子会很有用。提前感谢您的帮助

在Makefiles中,您可以定义要在所有命令行中使用的表达式。如果您正确使用此功能,您可以对任意多(或少)个文件使用相同的命令。在您从其他项目中看到的Makefiles中,您会看到人们通常将CFLAGS用于C编译器的(意外)标志和选项,将LIBS用于链接器,但您可以将任何您喜欢的名称用于宏。

您还可以定义要操作的文件和它们所依赖的文件的列表。

在Linux上,一些软件包还安装了一个配置文件,允许使用名为pkg-config的应用程序来查找该软件包的所有标志和库选项。这样可以避免将显式路径硬连接到Makefile中。

这里有几个教程:

简单教程。

另一个介绍