转发,请保持地址:http://blog.csdn.net/stalendp/article/details/8574894
最近在编写一个手机游戏,用到Box2D,学习后顺带写了这几篇文章。
整合的方式:把Box2D编译成static Lib, 然后整合
===============
Box2D的编译
===============
1)新建一个名为Box2D的static Library工程,如下图:
2) 新建src目录,把 Box2D_vxxx解压后文件夹中的Box2D直接拷入src中,如下图:
3)因为某些包使用 "#include<Box2d/xxx>" ,所以要在环境变量中含有Box2D的目录,配置如下:
打开工程的属性编辑页面(右击工程,选择properties),在弹出的对话框中选择“GCC C++ Compiler”, 把工程中的src目录到include的path中,如下图:(添加时,按)
在workspace中选择就可以了:
确定后,就可以编译了。编译后的工程如下图(出现了Archives/libBox2D.a):
=====================================
运行第一个简单的例子: Hello, world
=====================================
1) 创建一个Executable的C++工程(Box2dTest),如下图:
2)新建src目录,把Box2D解压包下的HelloWorld 下的HelloWorld.cpp放到src文件夹下,如下图:
3) 配置Box2D的路径,架设第一个工程的目录为:/Users/stalendp/Documents/workspace2/Box2D_v2.2.1/Box2D, 其目录结构为:
Box2D / Debug /libBox2D.o ….. /src /Box2D /Rope /Dynamics /Common /Collision Box2D.h ….
目前工程,在编译期间,需要头文件信息,在链接的时候需要“libBox2D.o”文件, 配置如下:
指定头文件位置----方法一:
指定头文件位置----方法二:
指定链接库的位置(需要指定lib的名称和搜索路径,注意Box2D在文件系统中的名称为 libBox2D.o, 其实这个指定的时g++的“-l”参数):
保存后,就可以编译了。
相关日志如下:
**** Build of configuration Debug for project Box2dTest ****
make all
Building file: ../src/HelloWorld.cpp
Invoking: GCC C++ Compiler
g++ -I/Users/stalendp/Documents/workspace2/Box2D_v2.2.1/Box2D/src -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/HelloWorld.d" -MT"src/HelloWorld.d" -o "src/HelloWorld.o" "../src/HelloWorld.cpp"
Finished building: ../src/HelloWorld.cpp
Building target: Box2dTest
Invoking: MacOS X C++ Linker
g++ -L/Users/stalendp/Documents/workspace2/Box2D_v2.2.1/Box2D/Debug -o "Box2dTest" ./src/HelloWorld.o -lBox2D
Finished building target: Box2dTest
**** Build Finished ****
编译和运行的情况如下:
相关阅读:《Box2D的编译与运行 - Rich Test》