我正在尝试让 PhysX 使用 Ubuntu 工作。
首先,我在这里下载了 SDK:
接下来,我提取了文件并安装了每个包:
dpkg -i filename.deb
这给了我位于 /usr/lib/PhysX/v2.8.1 中的以下文件:
- libNxCharacter.so
- libNxCooking.so
- libPhysXCore.so
- libNxCharacter.so.1
- libNxCooking.so.1
- libPhysXCore.so.1
接下来,我创建了指向 /usr/lib 的符号链接:
sudo ln -s /usr/lib/PhysX/v2.8.1/libNxCharacter.so.1 /usr/lib/libNxCharacter.so.1
sudo ln -s /usr/lib/PhysX/v2.8.1/libNxCooking.so.1 /usr/lib/libNxCooking.so.1
sudo ln -s /usr/lib/PhysX/v2.8.1/libPhysXCore.so.1 /usr/lib/libPhysXCore.so.1
现在,使用 Eclipse,我指定了以下库 (-l):
- libNxCharacter.so.1
- libNxCooking.so.1
- libPhysXCore.so.1
以下搜索路径以防万一(-L):
- /usr/lib/PhysX/v2.8.1
- /usr/lib
此外,正如 Gerald Kaszuba 所建议的,我添加了以下包含路径 (-I):
- /usr/lib/PhysX/v2.8.1
- /usr/lib
然后,我尝试编译以下代码:
#include "NxPhysics.h"
NxPhysicsSDK* gPhysicsSDK = NULL;
NxScene* gScene = NULL;
NxVec3 gDefaultGravity(0,-9.8,0);
void InitNx()
{
gPhysicsSDK = NxCreatePhysicsSDK(NX_PHYSICS_SDK_VERSION);
if (!gPhysicsSDK)
{
std::cout<<"Error"<<std::endl;
return;
}
NxSceneDesc sceneDesc;
sceneDesc.gravity = gDefaultGravity;
gScene = gPhysicsSDK->createScene(sceneDesc);
}
int main(int arc, char** argv)
{
InitNx();
return 0;
}
我得到的第一个错误是:
NxPhysics.h:没有这样的文件或目录
这告诉我该项目显然没有正确链接。谁能告诉我我做错了什么,或者我还需要做什么才能让我的项目编译?我正在使用 GCC C++ 编译器。提前致谢!