2016-11-10 97 views
0

我使用的Eclipse IDE对于C项目在Mac电脑上 我安装usblib sudo brew install libusb 和我的程序Eclipse构建错误

#include <stdio.h> 
#include <stdlib.h> 
#include <libusb-1.0/libusb.h> 
int main(void) { 
    libusb_context **libcontext; 
    int status = libusb_init(libcontext); 
    if (status == 0) { 
     printf("success"); 
    } 
} 

的libusb的是 enter image description here

当我建立自己的错误

10:17:53 **** Build of configuration Debug for project testusb **** make all Building file: ../src/testusb.c Invoking: Cross GCC Compiler gcc -O0 -g3 -Wall -c -fmessage-length=0 -stdlib=libstdc++ -MMD -MP -MF"src/testusb.d" -MT"src/testusb.o" -o "src/testusb.o" "../src/testusb.c" ../src/testusb.c:16:6: warning: unused variable 'status' [-Wunused-variable] int status = libusb_init(libcontext); ^../src/testusb.c:16:27: warning: variable 'libcontext' is uninitialized when used here [-Wuninitialized] int status = libusb_init(libcontext); ^~~~~~~~~~ ../src/testusb.c:15:29: note: initialize the variable 'libcontext' to silence this warning libusb_context libcontext; ^ = NULL 2 warnings generated. Finished building: ../src/testusb.c Building target: testusb Invoking: Cross GCC Linker gcc -L/opt/local/lib -o "testusb" ./src/testusb.o Undefined symbols for architecture x86_64:
"_libusb_init", referenced from: _main in testusb.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *
[testusb] Error 1

如何解决这个问题?

enter image description here

+0

看起来这个库没有链接。检查您的项目设置。 – MikeCAT

+0

我添加设置图片,但我不知道如何设置它。这是我第一次使用c程序 –

+0

请参阅:http://stackoverflow.com/questions/7050482/libusb-undefined-reference-to – Fang

回答

0

感谢@Fang建议Libusb undefined reference to 我解决这个问题。 第一类

pkg-config --list-all 

查询所有已安装的库,检查的libusb是否安装, 然后键入反对我想使用libusb的

pkg-config --libs libusb 

链接

应该有输出

-lusb 

然后右键单击项目道具erties-> c/C++ Build-> Setting-> Cross GCC Linker杂项,类型-lusb-1.0