构建独立库

时间:2015-12-11 22:13:43

标签: android c++ c cross-compiling

我正在尝试将一个大项目交叉编译为android(太大而无法将其移植到ndk-build格式)。我来自Java世界所以我对所有这些编译,C,C ++都很陌生。事情如下:

这个大项目,使用xerces-c作为一个库,它当时依赖于ICU Transcoder。我已经交叉编译了它们,导致libxerces-c.a,libicuuc.a和libicudata.a

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

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

由于我对此很新,一个例子非常有用。 在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在Makefile中,您可以定义要在所有命令行中使用的表达式。如果正确使用此工具,则可以根据需要在尽可能多(或几个)的文件上使用相同的命令。在Makefiles中,您会看到其他项目中您会看到人们通常使用CFLAGS作为C语言编译器的(惊喜)标志和选项,而LIBS用于链接器,但您可以使用任何您喜欢的名称来表示宏。

您还可以定义要操作的文件列表及其所依赖的文件。

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

以下是一些教程:

Simple tutorial.

Another intro