安装了相对较新的 ubuntu LTS,我按照此处找到的通用动态库构建说明进行操作:http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Installation
安装看起来很顺利(没有错误或警告),之后我在/usr/local/include/bullet 中找到了所有必需的文件。我目前正在尝试通过以下 shell 命令编译文件:
g++ bulletTest.cpp -lGL -lGLU -I/usr/local/include/bullet/
bulletTest.cpp 是:
#include <iostream>
#include <btBulletDynamicsCommon.h>
int main (void)
{
btBroadphaseInterface* broadphase;
return 0;
}
这个文件没有任何内容,但是抛出了大量 undefined reference 错误,例如“/tmp/ccH09wLR.o:(.rodata._ZTV17btTypedConstraint[_ZTV17btTypedConstraint]+0x30): undefined reference to `__cxa_pure_virtual'”我在论坛/SO 上找不到任何其他投诉,所以我相信这一定是我的构建/安装有问题。在尝试 gcc 和 g++ 编译器时会发生这些类型的错误。
有人有想法吗?
编辑:将我的 shell 命令更改为 g++ bulletTest.cpp -lGL -lGLU -lBulletDynamics -lBulletCollision -lBulletSoftBody -lLinearMath -I/usr/local/include/bullet/
它编译但不运行,错误是:加载共享库时出错:libBulletDynamics.so.2.82:无法打开共享对象文件:没有这样的文件或目录
最佳答案
所以这是很多小东西。首先,不要引用“lbullet”引用每个所需的库:
g++ bulletTest.cpp -o bulletTest -lGL -lGLU -lBulletDynamics -lBulletCollision -lBulletSoftBody -lLinearMath -I /usr/local/include/bullet/
此外,我必须设置 LD_LIBRARY_PATH 变量
export LD_LIBRARY_PATH=/usr/local/lib
然后它会同时编译和运行。
关于c++ - 全新安装的子弹物理引擎无法正确链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37865912/