【发布时间】:2014-01-22 04:04:36
【问题描述】:
我的一个朋友让我尽可能用objective-c重写Box2D。我开始写作,到目前为止,当我构建项目时,我遇到了一些链接器错误,我以前遇到过类似的问题,但这没有帮助。我得到的错误是:
Ld /Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Products/Debug/Obj-Box2D normal x86_64
cd /Users/aizen-qa/Desktop/Obj-Box2D
setenv MACOSX_DEPLOYMENT_TARGET 10.9
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Products/Debug -F/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Products/Debug -filelist /Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Obj-Box2D.LinkFileList -mmacosx-version-min=10.9 -fobjc-arc -fobjc-link-runtime -framework Foundation -Xlinker -dependency_info -Xlinker /Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Obj-Box2D_dependency_info.dat -o /Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Products/Debug/Obj-Box2D
duplicate symbol _Ob2IsValid in:
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Vec3.o
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Mat22.o
duplicate symbol _Ob2InvSqr in:
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Vec3.o
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Mat22.o
duplicate symbol _Ob2IsValid in:
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Vec3.o
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Vec2.o
duplicate symbol _Ob2InvSqr in:
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Vec3.o
/Users/aizen-qa/Library/Developer/Xcode/DerivedData/Obj-Box2D-bwsosdvwkjzsscahpbqrbrnzlall/Build/Intermediates/Obj-Box2D.build/Debug/Obj-Box2D.build/Objects-normal/x86_64/Ob2Vec2.o
ld: 4 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我读过类似的问题,并尝试了检查导入不使用.m和重复变量名等解决方案。但是我注意到向量的类具有相同的实例变量名称,x,y 所以这是我得到错误的原因吗?
【问题讨论】:
-
好吧,试着做一个干净——当你遇到奇怪的错误时,标准的第一选择。
-
您将矩阵和向量类命名为什么(在您的端口中)?
-
@HotLicks 我试过也没用
-
会不会是
Ob2IsValid... 是在 .h 文件而不是 .m 文件中定义的?如果 .h 文件包含在多个 .m 文件中,您会得到重复的定义。 -
您是否真的检查过您的源文件以查看 _Ob2IsValid 等的声明位置/方式?在此处发布一些示例。
标签: objective-c xcode linker ld