मैं रूबी के लिए एक सी विस्तार पर काम कर रहा हूँ, लेकिन मैं IOBluetooth
ढांचे से शीर्ष लेख शामिल करने की जरूरत है, विशेष रूप से:कोको हेडर लिंक करना सी विस्तार रूबी के लिए
#import <IOBluetooth/objc/IOBluetoothDeviceInquiry.h>
#import <IOBluetooth/IOBluetoothUserLib.h>
सब कुछ ठीक संकलित है, लेकिन क्रम में, विस्तार त्रुटियों:
path/to/file.rb:1:in `require_relative': dlopen(/path/to/extension.bundle, 9):
Symbol not found: _OBJC_CLASS_$_IOBluetoothDeviceInquiry (LoadError)
मैं काफी यकीन है कि यह ढांचा लिंक करने की प्रक्रिया में शामिल नहीं किया जा रहा से कोई लेना देना कुछ है हूँ, लेकिन मुझे यकीन है कि क्यों नहीं कर रहा हूँ। किसी भी मदद बहुत सराहना की जाएगी
extconf.rb
:
# Loads mkmf which is used to make makefiles for Ruby extensions
require 'mkmf'
# Give it a name
extension_name = 'bluetooth'
dir_config(extension_name)
create_makefile(extension_name, 'bluetooth')
जनरेट किया MakeFile:http://paste.wilhall.com/25
अद्यतन: मैं Makefile संशोधित इतना है कि पुस्तकालय स्थिर लिंक करता है; अभी भी एक ही त्रुटि का सामना कर रहा है, लेकिन इस बार लिंक करते समय।
विचित्र रूप से, have_header
मेरी extconf.rb
फ़ाइल में इन हेडर फ़ाइलों को ठीक लगता है।
अद्यतन:
Process: ruby [951]
Path: /usr/local/bin/ruby
Identifier: ruby
Version: 0
Code Type: X86-64 (Native)
Parent Process: bash [468]
User ID: 501
Date/Time: 2012-10-17 14:06:57.425 -0400
OS Version: Mac OS X 10.8.1 (12B19)
Report Version: 10
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000010
अगर मैं सही ढंग से याद, EXC_BAD_ACCESS (SIGABRT)
अक्सर एक जीसी समस्या से संबंधित है: मैं प्रणाली लॉग फ़ाइलों से निम्नलिखित खींच लिया है? इसमें देखेंगे और परिणाम
यह एक शानदार सवाल +1 –