和我上一篇文章一样:Installing linux library in C在成功地为我的项目安装了库之后。我一直在遵循一些示例代码,但无法使其正常工作。
例如,我收到关于print语句的多个错误(已从注解修复)--如何成功打印出当前访问USB端口的设备?--它引发了一个未定义符号的问题?
int main(int argc, char *argv[]){
libusb_device**list;
libusb_device *found = NULL;
ssize_t cnt = libusb_get_device_list(NULL, &list);
ssize_t i = 0;
int err = 0;
if (cnt < 0)
perror("Some Error");
exit(1);
for (i = 0; i < cnt; i++) {
libusb_device *device = list[i];
if (device) {
found = device;
break;}}
if (found) {
libusb_device_handle *handle;
err = libusb_open(found, &handle);
if (err)
perror("Another Error");
exit(1);
}
libusb_free_device_list(list, 1);
return 0;
}
我收到的错误如下:
Undefined symbols for architecture x86_64:
"_libusb_get_device_list", referenced from:
_main in exercise_1-eebbd8.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
1条答案
按热度按时间c7rzv4ha1#
你的大问题是你没有正确地引用你的字符串。
应该是
在C中,单引号仅用于单个字符。字符串必须用双引号引起来。
看起来您的其他错误是因为您没有包括任何头文件,这些头文件提供了要使用的函数的声明。
至少你需要
但是您还需要其他库,比如任何需要的库都有libus函数的定义。