2010-07-31 41 views
5

Khi tôi cố gắng xây dựng dự án của mình, tôi nhận được lỗi sau.Lỗi xây dựng biểu tượng trùng lặp trong dự án XCode

ld: trùng lặp biểu tượng .objc_class_name_GLFunView trong /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFunView-7A51E8797CBB3D72. o và /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFunView-7A51E8797CBB3D72.o

lỗi này là gì trong khoảng? Làm thế nào tôi có thể theo dõi nơi lỗi là? XCode thường làm nổi bật mã có vấn đề, nhưng đối với lỗi này nó không hiển thị bất cứ điều gì? Nó không có gì để làm với Interface Builder hiện nó? Nghiên cứu của tôi chỉ ra rằng điều này có thể được gây ra bằng cách bao gồm một cái gì đó hai lần, nhưng tôi không hiểu làm thế nào có thể vì tôi không sử dụng bất kỳ câu lệnh #include nào, tôi chỉ sử dụng #import statement.

Dưới đây là một số chi tiết của việc xây dựng đầu ra:

Ld xây dựng/Debug-iphonesimulator/GLFun.app/GLFun i386 bình thường cd /Users/gin/Documents/phát triển/GLFun setenv MACOSX_DEPLOYMENT_TARGET 10,5 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Nhà phát triển/Nền tảng/iPhoneSimulator .platform/Nhà phát triển/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/D eveloper/SDKs/iPhoneSimulator3.1.3.sdk -L/Người dùng/gin/Tài liệu/phát triển/GLFun/xây dựng/Gỡ lỗi-iphonesimulator -F/Người dùng/gin/Tài liệu/phát triển/GLFun/build/Debug-iphonesimulator -filelist /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFun.LinkFileList -mmacosx-version-min = 10.5 -framework Foundation -framework UIKit - khuôn khổ CoreGraphics -framework OpenGLES -framework QuartzCore -o /Users/gin/Documents/development/GLFun/build/Debug-iphonesimulator/GLFun.app/GLFun

+1

Bạn phải bao gồm một cái gì đó hai lần vì những con đường đều giống nhau .. nó nói "bao gồm từ" trong bất kỳ của đầu ra xây dựng? – jtbandes

+0

Bao gồm hầu như không bao giờ gây ra lỗi liên kết. Điều này có thể được kích hoạt bởi nhiều bao gồm nếu bạn có một '@ implementation' trong một tập tin tiêu đề ... nhưng nếu đó là trường hợp, sau đó bạn có vấn đề khác. –

+0

Tôi đã tìm kiếm toàn bộ dự án để thực hiện @implementation và không tìm thấy một cá thể nào của nó. –

Trả lời

3

tôi đoán là bạn đang @implementing GLFunView hai lần trong cùng một tệp (GLFunView.m). Có lẽ bạn có nghĩa là để thực hiện GLFunView và sau đó thực hiện một thể loại trên đó, và quên tên thể loại?

+0

Không có @implementing trong GLFunView.m. –

+0

không, nhưng có ít nhất một '@ implementation'. Nếu bạn có 2 dòng @Fplementation GLFunView, bạn đang triển khai lớp hai lần. Nếu bạn có điều đó, có lẽ một người đã có nghĩa là một '@implementation GLFunView (SomeCategory)'? –

+0

Hoặc có lẽ, như tôi đã đề cập trong một bình luận ở trên, GLFunView.h của bạn có một '@implementation GLFunView' ở đâu đó trong nó? –

23

Tôi đã gặp phải sự cố tương tự ngay hôm nay. Hóa ra đó là lỗi đánh máy trong tuyên bố #import. Tôi vô tình bao gồm các tập tin .m thay vì tiêu đề:

#include "MyClass.m" 

thay vì:

#include "MyClass.h" 
Các vấn đề liên quan