我正在尝试在Xcode 4.5.1(MacOS 10.8)上的C项目中使用ODE。我用了
./autogen.sh
./configure
make
sudo make install
安装lib。然后我尝试编译测试程序:
#include <stdio.h>
#include <ode/ode.h>
int main(int argc, const char * argv[]) {
dWorldID world = dWorldCreate();
return 0;
}
我在构建设置 - &gt;预处理器宏中添加了dSINGLE
,在我的Xcode项目中添加了libode.a
。
当我尝试构建和运行时,我遇到了一堆错误,比如
架构x86_64的未定义符号:
“std :: terminate()”,引自:
_dJointGroupCreate in libode.a(ode.o)
libode.a(ode.o)中的_dBodyCreate
libode.a(ball.o)中的dxJointBall :: dxJointBall(dxWorld *)
libode.a(ball.o)中的dxJointBall :: dxJointBall(dxWorld *)
libode.a中的dxJointFixed :: dxJointFixed(dxWorld *)(fixed.o)
libode.a中的dxJointFixed :: dxJointFixed(dxWorld *)(fixed.o)
libode.a中的dxJointHinge :: dxJointHinge(dxWorld *)(hinge.o)
...
。
。
。
点。
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我创建一个C ++项目而不是C项目,那么相同的过程可以正常工作。
我是否忘记在构建设置中添加内容以使其正常工作?
答案 0 :(得分:0)
解决了添加
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/lib/libstdc++.dylib
到Xcode项目。