看板 C_and_CPP 關於我們 聯絡資訊
descent@w-linux:progs$ gcc u.c -I/usr/include/libusb-1.0 /usr/lib/libusb-1.0.a /usr/lib/libusb-1.0.a(libusb_1_0_la-io.o): In function `libusb_try_lock_events': (.text+0x1128): undefined reference to `pthread_mutex_trylock' /usr/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_init': (.text+0x337e): undefined reference to `clock_gettime' /usr/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_clock_gettime': (.text+0x1b): undefined reference to `clock_gettime' /usr/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_clock_gettime': (.text+0x33): undefined reference to `clock_gettime' collect2: ld returned 1 exit status descent@w-linux:progs$ gcc u.c -I/usr/include/libusb-1.0 /usr/lib/libusb-1.0.a -lpthread /usr/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_init': (.text+0x337e): undefined reference to `clock_gettime' /usr/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_clock_gettime': (.text+0x1b): undefined reference to `clock_gettime' /usr/lib/libusb-1.0.a(libusb_1_0_la-linux_usbfs.o): In function `op_clock_gettime': (.text+0x33): undefined reference to `clock_gettime' collect2: ld returned 1 exit status 這是我編譯的錯誤訊息, 有很多方法可以解決你的問題。 pthread_mutex_trylock 用猜的, 應該需要 pthread -> -lpthread man clock_gettime NAME clock_getres, clock_gettime, clock_settime - clock and time functions SYNOPSIS #include <time.h> int clock_getres(clockid_t clk_id, struct timespec *res); int clock_gettime(clockid_t clk_id, struct timespec *tp); int clock_settime(clockid_t clk_id, const struct timespec *tp); Link with -lrt. got -lrt。 最後這樣搞定: gcc u.c -I/usr/include/libusb-1.0 /usr/lib/libusb-1.0.a -lpthread -lrt 我這邊的測試是不需要 -static。 這要怎麼發現只能說自己找方法, 你不是也找到了嗎? ※ 引述《newranger (ranger)》之銘言: : ....後面還有很多省略 : 提示告訴我libusb-1.0.9這東西本身也有問題, : 自己都找不到參考對象了自然不能給人參考 : 一直到輸入以下指令, 才成功編譯出a.out : gcc -static test.c -L/mnt/test/libusb-1.0.9/install -lusb-1.0 -lpthread -lrt : 這裡有三個疑問: : 首先這裡為何要使用 -static? : 是否官網的壓縮檔沒有包含完整的東西, 以後我要下載其他組件或函式庫, 都要這樣 : 東拉拉西拉拉嗎? : 感覺這樣我的函式庫最後不是會很亂很不利嗎? : 最後一個問題我自己再上網學一下, 就是為啥人家一眼就看到那些找不到的參考對象就知 : 道要 -lpthread 跟 -lrt? : 好像是利用objdump去找 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.125.239.51 ※ 編輯: descent 來自: 59.125.239.51 (04/02 10:51)