2012-06-07 31 views
9

Điều này đã trở thành một cơn đau đúng Tôi đã nhìn vào nó trong 2 ngày nay và dường như không thể giải quyết nó. Đây là lỗi tôi nhận được.Ký hiệu không xác định cho kiến ​​trúc armv7: "_SCNetworkReachabilityCreateWithAddress"

Undefined symbols for architecture armv7: 
"_SCNetworkReachabilityCreateWithAddress", referenced from: 
    +[Reachability reachabilityWithAddress:] in Reachability.o 
"_SCNetworkReachabilityCreateWithName", referenced from: 
    +[Reachability reachabilityWithHostName:] in Reachability.o 
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
    -[Reachability stopNotifier] in Reachability.o 
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
    -[Reachability startNotifier] in Reachability.o 
"_SCNetworkReachabilitySetCallback", referenced from: 
    -[Reachability startNotifier] in Reachability.o 
"_SCNetworkReachabilityGetFlags", referenced from: 
    -[Reachability connectionRequired] in Reachability.o 
    -[Reachability currentReachabilityStatus] in Reachability.o 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Tôi đã thêm SystemConfiguration.framework và nó dường như không muốn làm bất cứ điều gì với nó như lỗi này chỉ sẽ không biến mất. Tôi đã xem xét một vài vấn đề tương tự nhưng nhiều người trong số họ đã xác nhận bất kỳ câu trả lời nào. Loại này chỉ phát triển vào cuối tuần khi không ai chạm vào nó. Có ai giúp được không.

EDIT Quên thêm bit này.

ld: cảnh báo: bỏ qua tập tin /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/ SystemConfigura, thiếu cần kiến ​​trúc ARMv7 trong tập tin

EDIT

Ngay Nhờ @gaige tôi đã tìm thấy một vấn đề; có một dấu gạch chéo thêm ngay trước khi SystemConfiguration.framework không nên ở đó. Tôi đã xóa khung và thêm lại và điều đó đã không giúp ích gì. Làm thế nào tôi có thể loại bỏ dấu gạch chéo thêm này?

+0

Có dấu gạch chéo bổ sung lẻ trong đường dẫn khung, điều này có thể ảnh hưởng đến (hoặc không), bạn có thể xóa và thêm lại khung không? Bản sao của tôi về các khung công tác chắc chắn có cả v6 và v7, vì vậy điều đó sẽ ổn. – gaige

+0

@gaige Tôi đã xóa và thêm lại khung và dấu gạch chéo đó là vẫn có cách nào tôi có thể xóa dấu gạch chéo đó vì tôi đã cố gắng truy cập tệp qua thiết bị đầu cuối và không hoạt động với nó nhưng không có nó. – Popeye

+1

Hệ thống UNIX thường không bị hỏng do dấu gạch chéo thêm. Tôi đoán là có thể. Bạn có thể xác minh rằng tệp được đề cập có thực sự có cả kiến ​​trúc không? chạy 'lipo -info/Applications/Xcode.app/Nội dung/Nhà phát triển/Nền tảng/iPhoneOS.platform/Nhà phát triển/SDK/iPhoneOS5.1.sdk/System/Library/Frameworks // SystemConfiguration.framework/SystemConfiguration' – Nate

Trả lời

8

Thông thường, dấu gạch chéo bổ sung sẽ không làm hỏng quy trình xây dựng giống UNIX.

Nhưng, bạn cần đảm bảo cấu trúc armv7 nằm trong tệp khuôn khổ mà bản dựng của bạn đang cố gắng sử dụng. Để làm điều này, sử dụng lệnh lipo -info tại cửa sổ dòng lệnh:

lipo -info /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer‌​/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/Sy‌​stemConfiguration 

Bạn sẽ thấy kết quả như thế này:

Architectures in the fat file: SystemConfiguration are: armv6 armv7 

Nếu bạn không, dự án của bạn có lẽ là thiết lập để liên kết đến phiên bản sai của SystemConfiguration.framework. Có nhiều phiên bản của khuôn khổ đó trên máy của bạn. Vì vậy, tôi sẽ xác minh đường dẫn của khung công tác (tức là SystemConfiguration) mà bạn có trong dự án của mình.

Thông thường, tôi mong chờ tập tin đó là một cái gì đó như thế này (điều chỉnh cho phiên bản hệ điều hành bạn đang sử dụng):

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Lib‌​rary/Frameworks/SystemConfiguration.framework 
+0

Cảm ơn rất nhiều điều đã thực sự giúp đỡ và tôi hy vọng nó sẽ giúp những người khác trong tương lai. – Popeye

0

Tôi đã có vấn đề này trong khoảng 8 giờ với một dự án và Cordova org.apache.cordova.network-information plugin. Theo các câu trả lời ở trên và một số câu trả lời khác, tôi được khuyến khích tìm kiếm trong phần Project > Target > Build Phases > Link Binary with Libraries của Xcode, điều này đúng.

Nhưng mặc dù SCNetworkReachabilityCreateWithAddress được xác định trong SystemConfigration.framework, tôi không thể loại bỏ các lỗi trình liên kết bằng cách thêm và xóa một cách có hệ thống và các thư viện khác.

Cuối cùng, tôi đã tạo một dự án mới với plugin và sao chép chòm sao khung chính xác như ban đầu. Bây giờ nó hoạt động.

Kết luận:

  • Nếu có thể, tạo ra một dự án mới với các phần mở rộng cần thiết và sao chép các chòm sao từ nó. Nó sẽ giúp.
  • Thỉnh thoảng, một thư viện được bao gồm quá nhiều, do đó hãy bỏ chọn nó. Đôi khi nó là cách khác vòng.
  • Để tìm hiểu sâu hơn, hãy kiểm tra SystemConfiguration.framework như được mô tả trong các câu trả lời nổi bật ở trên. Nó có thể không phù hợp với kiến ​​trúc đích. Hơn nữa, hãy kiểm tra các ký tự lạ trong bản dựng bao gồm cả đường dẫn.
Các vấn đề liên quan