【发布时间】:2014-11-12 23:29:15
【问题描述】:
我是 makefile 的新手。我正在尝试为 Box2D 制作一个 Android 生成文件。我对库进行了一些修改,它使用了我自己游戏中的一些次要数学函数。所以基本上我已经写了一个Box2D的文件:
extern float fastCos(float);
extern float fastSin(float);
但是我也尝试链接它的makefile,这不是我想要的,因为这两个功能是在我的游戏源代码中实现的,显然当时我只是在构建Box2D。我希望链接器仅在我编译整个游戏时链接这些函数。
我应该在 makefile 中做什么来实现这种类型的链接行为?我在网络上的其他 makefile 中看到过一些东西,例如“static_library”和“library”,这是我的问题的一部分吗?
【问题讨论】:
-
您是单独构建 Box2D 还是作为 Android.mk 进程的一部分?
-
是的,这就是我正在尝试的。为了避免再次重新编译box2d,如果我改变一些东西来制作我自己的游戏的makefile。正是 SDL 完成这项工作的方式。如果我更改自己的 makefile,则不会重新编译 SDL。它只会重新链接。
-
链接中的信息有帮助吗?您需要构建某种动态或静态的库。 navaneeth.github.io/blog/2013/07/28/…
-
不,并非如此,Android makefile 看起来与 CMake 文件完全不同。
-
对不起,我不明白在库中声明但不定义函数的需要是什么......?您基本上是在使库成为客户端代码的客户端,这很奇怪。为什么不直接将您的数学外部化到您自己的库中并在 Box2D 中使用它?
标签: c++ makefile android-ndk linker