2011-10-12 13 views
8

पर libusb-देव के खिलाफ संकलन (यदि आप स्रोत कोड डेसीलीटर।)मैं libusb पैकेज द्वारा प्रदान उदाहरण libusb.c संकलित करने के लिए कोशिश कर रहा हूँ उबंटू

यह कम से कम कहने के लिए काम नहीं करता।

#include <stdio.h> 
#include <sys/types.h> 
#include <libusb/libusb.h> 

कि यह विफल का कारण बनता है, वहाँ कोई libusb/libusb.h यह usb.h है है, इसलिए मुझे लगता है कि बदल जाते हैं। और यह नए और अभिनव तरीकों से विफल रहता है।

मैं फ़ाइल की प्रतिलिपि कर अधिक, वास्तव में, और यह

example.c मैं इन आदेशों और विविधताओं का उपयोग कर रहा नामित:

gcc -o example example.c -lusb -L /usr/lib/libusb.a 
gcc -o example example.c -lusb -L /usr/lib/libusb.so 

त्रुटियों मैं जब संकलन मिल रहे हैं:

example.c:25: error: expected ‘)’ before ‘*’ token 
example.c: In function ‘main’: 
example.c:46: error: ‘libusb_device’ undeclared (first use in this function) 
example.c:46: error: (Each undeclared identifier is reported only once 
example.c:46: error: for each function it appears in.) 
example.c:46: error: ‘devs’ undeclared (first use in this function) 

Line 25: static void print_devs(libusb_device **devs) 

Line 46: libusb_device **devs; 

पहले तो मुझे एक ट्यूटोरियल का पालन किया, और कहा कि लगभग समान ही तरीकों से संकलित करने के लिए, विफल रहा है, तो मैं बस उपलब्ध कराई उदाहरण की कोशिश करने का फैसला किया, और कहा कि असफल रहा।

क्या कोई मेरी मदद कर सकता है? समझाओ कि मैं क्या गलत कर रहा हूं, क्योंकि मैं इस पर खो गया हूं।

+0

कौन सी फाइल, आपने कॉपी की है और example.c नाम दिया है? – nmichaels

+0

libusb-1.0.8/libusb-1.0.8/उदाहरण/lsusb.c मैं इसे उबंटू पर स्क्रैच से संकलित करने की कोशिश कर रहा हूं, क्योंकि मूल रूप से मैं apt-get स्थापित libusb-dev –

+0

बस एक नोट, जो कि एक नोट उबंटू 11.04 में 'apt-get स्रोत libusb-1.0-0' के माध्यम से प्राप्त होने वाले' उदाहरण/lsusb.c' 'के रूप में उपयोग किया जाता था, अब स्पष्ट रूप से [उदाहरण/listdevs.c] (http://git.libusb.org) है /?p=libusb.git;a=blob;f=examples/listdevs.c;h=6ab891725a36424a7f59d5a8ff2c20a7deaec858;hb=HEAD)। – sdaau

उत्तर

21

मुझे डेबियन पर यही करना था। यह उबंटू में कम से कम समान होना चाहिए।

libusb-1.0-0-dev

बजाय

स्थापित करें:

#include <libusb/libusb.h> 

कार्य करें:

#include <libusb.h> 

संकलित साथ:

gcc example.c `pkg-config --libs --cflags libusb-1.0` 
+0

सुपर कूल, यह काम किया ... मुझे नहीं पता कि pkg-config -libs आदि सामान का क्या मतलब है। क्या आप इसे कुछ दस्तावेज समझा सकते हैं या लिंक कर सकते हैं? –

+2

Google इसे। यह बहुत उपयोगी उपकरण है। मैन्युअल रूप से संकलन झंडे जोड़ने के बजाय, आप बस निर्दिष्ट कर सकते हैं कि आप कौन सी लाइब्रेरी चाहते हैं, उन्हें 'pkg-config' पर पास करें और यह सभी आवश्यक ध्वज आउटपुट करेगा। –

6

बस स्पष्टीकरण एन क्यों r करने के लिए अपने प्रयास usb.h साथ eplace libusb/libusb.h विफल रहता है: usb.hlibusb-dev से, linux-headers से एक शीर्षक है नहीं। इसके बजाय आपको #include <libusb.h> की आवश्यकता है।

+0

धन्यवाद, आप सही थे। –

+0

यह उत्तर पूरी तरह से गलत है। /usr/include/usb.h लिनक्स-हेडर से नहीं है (जो उपयोगकर्ताओं के लिए लिंक करने के लिए नहीं हैं), बल्कि पुरानी libusb-0.1 एपीआई के लिए फ़ाइल शामिल है, जबकि /usr/include/libusb-1.0/libusb .h नई libusb-1.0 एपीआई के लिए फ़ाइल शामिल है। वे सीधे विनिमय नहीं कर सकते हैं। –

संबंधित मुद्दे

 संबंधित मुद्दे