2011-06-09 60 views
16
d /Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator/Goozzy.app/Goozzy normal i386 
cd /Users/yariksmirnov/Desktop/Goozy/branches/new 
setenv MACOSX_DEPLOYMENT_TARGET 10.6 
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator -F/Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator -filelist /Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Intermediates/Goozzy.build/Debug-iphonesimulator/Goozzy.build/Objects-normal/i386/Goozzy.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300 -framework CoreData -lz.1.2.3 -framework MobileCoreServices -framework SystemConfiguration -framework CFNetwork -framework QuartzCore -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator/Goozzy.app/Goozzy 

*ld: library not found for -lz.1.2.3* 
collect2: ld returned 1 exit status 
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1 

Làm cách nào để khắc phục lỗi này?Lỗi Trình liên kết trong Xcode 4.2 Nhà phát triển Xem trước

Rất lạ - tôi biên dịch một bản dựng cho iOS, nhưng gặp lỗi về mục tiêu triển khai Mac OS.

Trả lời

3

Cập nhật phiên bản libz dylib trong định nghĩa dự án của bạn thành bất kỳ thứ gì mà XCode 4.2 đang cung cấp. Nếu bạn đang biên dịch cùng một mã cho các mục tiêu khác nhau, hãy kiểm tra phiên bản thư viện trên từng mục tiêu.

Vì SDK 3.2 tất cả các phiên bản libz là liên kết tượng trưng cho phiên bản cuối cùng (libz.1.2.3 trong SDK 4.3), vì vậy bất kể phiên bản libz bạn chọn, bạn sẽ nhận được phiên bản cuối cùng. Xem /Developer/Platforms/iPhoneOS.platform/DeviceSupport/Latest/Symbols/usr/lib.

Tôi không biết Apple sẽ làm gì trong tương lai. Nếu bạn liên kết đến libz, bạn có thể tiếp tục liên kết đến phiên bản mới nhất. Một sự thay đổi trong số lượng lớn thư viện (libz-X) có thể phá vỡ khả năng tương thích, do đó, một sự lựa chọn an toàn hơn là tiếp tục liên kết cùng phiên bản bạn có ngay bây giờ. Lựa chọn của bạn.

43

Bạn nên liên kết libz.dylib không phải bất kỳ phiên bản cụ thể nào. Phiên bản chính xác được sử dụng tự động.

+0

Câu trả lời này sẽ được cải thiện rất nhiều nếu bạn có thể trỏ đến các tài liệu liên quan cho biết liên kết đến một phiên bản không phải phiên bản cụ thể sẽ tự động sử dụng phiên bản mới nhất. – memmons

+3

Sử dụng các liên kết tượng trưng để làm mờ các thay đổi số phiên bản nhỏ là một quy ước được sử dụng miễn là đã có các thư viện được chia sẻ. Nó phổ biến và cổ xưa. Bạn cũng có thể hỏi nơi tài liệu được định nghĩa/là phân tách đường dẫn mặc định - Tôi chắc chắn nó được chôn ở đâu đó ở độ sâu của một số tiêu chuẩn UNIX, nhưng tôi không nghĩ nó đặc biệt khai sáng để thêm vào câu trả lời này. Cảm thấy tự do để chỉnh sửa câu trả lời của tôi nếu bạn muốn dành thời gian đào nó lên mặc dù. – Jim

+1

Cảm ơn bạn đã làm rõ. Tôi hỏi vì - không đến từ nền C++ - tôi nghĩ nó có thể là Xcode cụ thể. BTW, tôi đã upvoted câu trả lời. – memmons

Các vấn đề liên quan