我对 Linux 还很陌生,但我正尝试在虚拟机上安装 Spooftooph。我不想安装 Kali Linux。我已经从下载了 .ta.gz 文件源码我已将其解压到“Documents”文件夹中。将目录更改为 spooftooph 文件夹并执行“make”命令后,我得到以下内容:
~/Documents/spooftooph# make
gcc -lbluetooth -lncurses -pthread dev_class.c namelist.c spooftooph.c bdaddr.c oui.c -o spooftooph
/tmp/ccsl7NSB.o: In function `generic_reset_device':
spooftooph.c:(.text+0x8a): undefined reference to `hci_send_cmd'
spooftooph.c:(.text+0xae): undefined reference to `hci_read_bd_addr'
/tmp/ccsl7NSB.o: In function `ericsson_write_bd_addr':
spooftooph.c:(.text+0x161): undefined reference to `hci_send_req'
/tmp/ccsl7NSB.o: In function `ericsson_store_in_flash':
spooftooph.c:(.text+0x291): undefined reference to `hci_send_req'
/tmp/ccsl7NSB.o: In function `csr_write_bd_addr':
spooftooph.c:(.text+0x4d6): undefined reference to `hci_send_req'
/tmp/ccsl7NSB.o: In function `csr_reset_device':
spooftooph.c:(.text+0x6c3): undefined reference to `hci_send_req'
/tmp/ccsl7NSB.o: In function `ti_write_bd_addr':
spooftooph.c:(.text+0x786): undefined reference to `hci_send_req'
/tmp/ccsl7NSB.o:spooftooph.c:(.text+0x849): more undefined references to `hci_send_req' follow
/tmp/ccsl7NSB.o: In function `cmd_bdaddr':
spooftooph.c:(.text+0x9ea): undefined reference to `hci_open_dev'
spooftooph.c:(.text+0xa54): undefined reference to `hci_devinfo'
spooftooph.c:(.text+0xa9f): undefined reference to `hci_close_dev'
spooftooph.c:(.text+0xac5): undefined reference to `hci_read_local_version'
spooftooph.c:(.text+0xb10): undefined reference to `hci_close_dev'
spooftooph.c:(.text+0xb81): undefined reference to `hci_read_bd_addr'
spooftooph.c:(.text+0xbcc): undefined reference to `hci_close_dev'
spooftooph.c:(.text+0xc0e): undefined reference to `bt_compidtostr'
spooftooph.c:(.text+0xc38): undefined reference to `ba2oui'
spooftooph.c:(.text+0xc61): undefined reference to `ba2str'
spooftooph.c:(.text+0xcce): undefined reference to `str2ba'
spooftooph.c:(.text+0xd22): undefined reference to `hci_close_dev'
spooftooph.c:(.text+0xd80): undefined reference to `ba2oui'
spooftooph.c:(.text+0xda9): undefined reference to `ba2str'
spooftooph.c:(.text+0xe5f): undefined reference to `hci_close_dev'
spooftooph.c:(.text+0xf0d): undefined reference to `hci_close_dev'
spooftooph.c:(.text+0xf51): undefined reference to `hci_close_dev'
/tmp/ccsl7NSB.o: In function `cmd_class':
spooftooph.c:(.text+0x1f1f): undefined reference to `hci_open_dev'
spooftooph.c:(.text+0x1f9a): undefined reference to `hci_write_class_of_dev'
/tmp/ccsl7NSB.o: In function `cmd_name':
spooftooph.c:(.text+0x2002): undefined reference to `hci_open_dev'
spooftooph.c:(.text+0x2066): undefined reference to `hci_write_local_name'
spooftooph.c:(.text+0x20b2): undefined reference to `hci_close_dev'
/tmp/ccsl7NSB.o: In function `print_service':
spooftooph.c:(.text+0x259e): undefined reference to `printw'
spooftooph.c:(.text+0x25fa): undefined reference to `printw'
spooftooph.c:(.text+0x2617): undefined reference to `printw'
spooftooph.c:(.text+0x2644): undefined reference to `printw'
spooftooph.c:(.text+0x2661): undefined reference to `printw'
/tmp/ccsl7NSB.o:spooftooph.c:(.text+0x272c): more undefined references to `printw' follow
/tmp/ccsl7NSB.o: In function `choice_list':
spooftooph.c:(.text+0x28ba): undefined reference to `stdscr'
spooftooph.c:(.text+0x28c2): undefined reference to `wclear'
spooftooph.c:(.text+0x28db): undefined reference to `printw'
spooftooph.c:(.text+0x28ea): undefined reference to `printw'
spooftooph.c:(.text+0x28f9): undefined reference to `printw'
spooftooph.c:(.text+0x2908): undefined reference to `printw'
spooftooph.c:(.text+0x2917): undefined reference to `printw'
/tmp/ccsl7NSB.o:spooftooph.c:(.text+0x2926): more undefined references to `printw' follow
/tmp/ccsl7NSB.o: In function `scan':
spooftooph.c:(.text+0x35ba): undefined reference to `hci_open_dev'
spooftooph.c:(.text+0x3681): undefined reference to `hci_inquiry'
spooftooph.c:(.text+0x3705): undefined reference to `ba2str'
spooftooph.c:(.text+0x380f): undefined reference to `hci_read_remote_name'
spooftooph.c:(.text+0x38f5): undefined reference to `hci_read_remote_name'
/tmp/ccsl7NSB.o: In function `main':
spooftooph.c:(.text+0x3eae): undefined reference to `hci_open_dev'
spooftooph.c:(.text+0x46e1): undefined reference to `initscr'
spooftooph.c:(.text+0x46e6): undefined reference to `cbreak'
spooftooph.c:(.text+0x46ed): undefined reference to `stdscr'
spooftooph.c:(.text+0x46fa): undefined reference to `keypad'
spooftooph.c:(.text+0x46ff): undefined reference to `noecho'
spooftooph.c:(.text+0x472e): undefined reference to `stdscr'
spooftooph.c:(.text+0x4736): undefined reference to `wrefresh'
spooftooph.c:(.text+0x477d): undefined reference to `stdscr'
spooftooph.c:(.text+0x478a): undefined reference to `wtimeout'
spooftooph.c:(.text+0x478f): undefined reference to `echo'
spooftooph.c:(.text+0x47be): undefined reference to `printw'
spooftooph.c:(.text+0x47c5): undefined reference to `stdscr'
spooftooph.c:(.text+0x47dc): undefined reference to `wgetnstr'
spooftooph.c:(.text+0x47e3): undefined reference to `stdscr'
spooftooph.c:(.text+0x47f0): undefined reference to `wtimeout'
spooftooph.c:(.text+0x4818): undefined reference to `printw'
spooftooph.c:(.text+0x481f): undefined reference to `stdscr'
我究竟做错了什么?
答案1
在 makefile 中将 spooftooph 目标更改为以下内容:
spooftooph:
$(CC) dev_class.c namelist.c spooftooph.c bdaddr.c oui.c $(BT_LIB) $(NCURSES_LIB) $(PTHREAD) -o spooftooph
库需要位于.c 文件之后。