- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试编译编写为 here 的源代码,触发用户空间的 Wi-Fi 主动扫描。
它需要 netlink 库,所以我完成了 sudo apt-get install libnl-3-dev libnl-genl-3-dev
要编译它,gcc $(pkg-config --cflags --libs libnl-3.0 libnl-genl-3.0) scan_access_points.c
,与 gcc -I 相同/usr/include/libnl3 -lnl-genl-3 -lnl-3 scan_access_points.c
但编译失败,出现多个undefined reference to 'SOMETHING'
。日志在下面,可以看到here .
/tmp/ccTQB59P.o: In function `family_handler':
scan_access_points.c:(.text+0xc8): undefined reference to `nlmsg_hdr'
scan_access_points.c:(.text+0xd0): undefined reference to `nlmsg_data'
scan_access_points.c:(.text+0xe5): undefined reference to `genlmsg_attrlen'
scan_access_points.c:(.text+0xf8): undefined reference to `genlmsg_attrdata'
scan_access_points.c:(.text+0x114): undefined reference to `nla_parse'
scan_access_points.c:(.text+0x133): undefined reference to `nla_data'
scan_access_points.c:(.text+0x146): undefined reference to `nla_len'
scan_access_points.c:(.text+0x160): undefined reference to `nla_len'
scan_access_points.c:(.text+0x171): undefined reference to `nla_data'
scan_access_points.c:(.text+0x18d): undefined reference to `nla_parse'
scan_access_points.c:(.text+0x1ad): undefined reference to `nla_len'
scan_access_points.c:(.text+0x1c3): undefined reference to `nla_data'
scan_access_points.c:(.text+0x1e3): undefined reference to `nla_get_u32'
scan_access_points.c:(.text+0x207): undefined reference to `nla_next'
scan_access_points.c:(.text+0x225): undefined reference to `nla_ok'
/tmp/ccTQB59P.o: In function `nl_get_multicast_id':
scan_access_points.c:(.text+0x266): undefined reference to `nlmsg_alloc'
scan_access_points.c:(.text+0x285): undefined reference to `nl_cb_alloc'
scan_access_points.c:(.text+0x2b2): undefined reference to `genl_ctrl_resolve'
scan_access_points.c:(.text+0x2eb): undefined reference to `genlmsg_put'
scan_access_points.c:(.text+0x318): undefined reference to `nla_put'
scan_access_points.c:(.text+0x334): undefined reference to `nl_send_auto_complete'
scan_access_points.c:(.text+0x367): undefined reference to `nl_cb_err'
scan_access_points.c:(.text+0x389): undefined reference to `nl_cb_set'
scan_access_points.c:(.text+0x3ab): undefined reference to `nl_cb_set'
scan_access_points.c:(.text+0x3c0): undefined reference to `nl_recvmsgs'
scan_access_points.c:(.text+0x3e0): undefined reference to `nl_cb_put'
scan_access_points.c:(.text+0x3ec): undefined reference to `nlmsg_free'
/tmp/ccTQB59P.o: In function `callback_trigger':
scan_access_points.c:(.text+0x628): undefined reference to `nlmsg_hdr'
scan_access_points.c:(.text+0x630): undefined reference to `nlmsg_data'
/tmp/ccTQB59P.o: In function `callback_dump':
scan_access_points.c:(.text+0x6d1): undefined reference to `nlmsg_hdr'
scan_access_points.c:(.text+0x6d9): undefined reference to `nlmsg_data'
scan_access_points.c:(.text+0x6f4): undefined reference to `genlmsg_attrlen'
scan_access_points.c:(.text+0x70a): undefined reference to `genlmsg_attrdata'
scan_access_points.c:(.text+0x729): undefined reference to `nla_parse'
scan_access_points.c:(.text+0x769): undefined reference to `nla_parse_nested'
scan_access_points.c:(.text+0x7bc): undefined reference to `nla_data'
scan_access_points.c:(.text+0x7f3): undefined reference to `nla_get_u32'
scan_access_points.c:(.text+0x813): undefined reference to `nla_len'
scan_access_points.c:(.text+0x824): undefined reference to `nla_data'
/tmp/ccTQB59P.o: In function `do_scan_trigger':
scan_access_points.c:(.text+0x8a5): undefined reference to `nl_socket_add_membership'
scan_access_points.c:(.text+0x8aa): undefined reference to `nlmsg_alloc'
scan_access_points.c:(.text+0x8ce): undefined reference to `nlmsg_alloc'
scan_access_points.c:(.text+0x8ef): undefined reference to `nlmsg_free'
scan_access_points.c:(.text+0x903): undefined reference to `nl_cb_alloc'
scan_access_points.c:(.text+0x924): undefined reference to `nlmsg_free'
scan_access_points.c:(.text+0x930): undefined reference to `nlmsg_free'
scan_access_points.c:(.text+0x970): undefined reference to `genlmsg_put'
scan_access_points.c:(.text+0x984): undefined reference to `nla_put_u32'
scan_access_points.c:(.text+0x99f): undefined reference to `nla_put'
scan_access_points.c:(.text+0x9b4): undefined reference to `nla_put_nested'
scan_access_points.c:(.text+0x9c0): undefined reference to `nlmsg_free'
scan_access_points.c:(.text+0x9e2): undefined reference to `nl_cb_set'
scan_access_points.c:(.text+0x9ff): undefined reference to `nl_cb_err'
scan_access_points.c:(.text+0xa21): undefined reference to `nl_cb_set'
scan_access_points.c:(.text+0xa43): undefined reference to `nl_cb_set'
scan_access_points.c:(.text+0xa64): undefined reference to `nl_cb_set'
scan_access_points.c:(.text+0xa7e): undefined reference to `nl_send_auto'
scan_access_points.c:(.text+0xab4): undefined reference to `nl_recvmsgs'
scan_access_points.c:(.text+0xaeb): undefined reference to `nl_geterror'
scan_access_points.c:(.text+0xb1c): undefined reference to `nl_recvmsgs'
scan_access_points.c:(.text+0xb51): undefined reference to `nlmsg_free'
scan_access_points.c:(.text+0xb5d): undefined reference to `nl_cb_put'
scan_access_points.c:(.text+0xb6e): undefined reference to `nl_socket_drop_membership'
/tmp/ccTQB59P.o: In function `main':
scan_access_points.c:(.text+0xb94): undefined reference to `nl_socket_alloc'
scan_access_points.c:(.text+0xba4): undefined reference to `genl_connect'
scan_access_points.c:(.text+0xbba): undefined reference to `genl_ctrl_resolve'
scan_access_points.c:(.text+0xbfb): undefined reference to `nlmsg_alloc'
scan_access_points.c:(.text+0xc35): undefined reference to `genlmsg_put'
scan_access_points.c:(.text+0xc49): undefined reference to `nla_put_u32'
scan_access_points.c:(.text+0xc6a): undefined reference to `nl_socket_modify_cb'
scan_access_points.c:(.text+0xc7d): undefined reference to `nl_send_auto'
scan_access_points.c:(.text+0xca0): undefined reference to `nl_recvmsgs_default'
scan_access_points.c:(.text+0xcaf): undefined reference to `nlmsg_free'
scan_access_points.c:(.text+0xcc1): undefined reference to `nl_geterror'
collect2: error: ld returned 1 exit status
我不知道如何解决这个问题。谁能给我一个解决方案或一个小提示?
已在 Ubuntu 14.04 LTS(内核:3.13.0-43-generic)上完成编译
最佳答案
您链接的库,-lnl-genl-3 -lnl-3 参数,必须在命令行上使用它的代码之后。
在您的情况下,最简单的方法是使用例如:
gcc scan_access_points.c $(pkg-config --cflags --libs libnl-3.0 libnl-genl-3.0)
关于c - libnl 3(netlink 库)未定义对 nl* 和 genl* 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959079/
我最近需要调试一些非常古老的遗留代码,主要是为某些微 Controller 设计的。 在此代码中,所有 printf 调用都遵循相同的约定: fprintf(outfile, "\r\nFormat
使用的网址:https://cloud.google.com/speech-to-text/ 我通过 audacity 上传了一个 wav 音频文件(都导出为 mp3/wav/flac)。 我选择了“
我有这个代码: sourceStr="abc efg jkm lmn efg jkm lmn efg jkm lmn efg jkm lmn"; nl -s ". " <<< "$sourceStr"
我如何匹配最后一行没有换行符的文件结尾。当我使用注释行 (w/EOF) 时,解析器进入什么看起来像一个无限循环(即挂起)。 这是一个语法——大部分是从 tparr 的作品中借来的 grammar cs
我正在尝试将字符串转换为等价数字,以便我可以训练神经网络对字符串进行分类。我尝试了 ascii 值的总和,但这只会导致较大的数字与较小的数字。 例如,我可以有一个德语短字符串,它会将其放入英语类中,因
我尝试过这个,但它对我不起作用: char * remove_nl(char * newstr) { newstr = strdup(newstr); newstr[strlen(ne
嗨,Linux 内核/网络大师, 我正在寻找一种方法来 Hook 并打印出 wpa_supplicant 和内核之间的 NL(netlink) 消息。截至目前,我只是插入了几条 printk 消息来打
根据Python docs , ast.Print 接受一个可选的 bool 值 nl 参数。它有什么用? 最佳答案 它标志着print 'foo' 和print 'foo', 之间的区别。后者省略了
我正在使用带有荷兰语模型 nl_core_news_sm (nl) 的 Spacy 2.0.11。如何添加类似于德语 (de) 实现的词形还原查找? 我尝试了以下步骤: 将查找添加到语言文件夹 (nl
当使用以下命令时: nl /etc/snort/snort.conf | grep output 我得到以下输出: 33 # 6) Configure output plugins 445 #
我想在一个文本文件中包含 nu.nl 的新闻标题,这样我就可以在我的一个 bash 脚本中使用它们。我也想用 bash 脚本提取这些标题。 我添加了今天 nu.nl 主页的屏幕截图 (http://i
我想使用 nl 命令对行进行编号。是否可以将 nl 命令中的行增量设置为 float 。 我知道我们不能像这样使用 -i 开关来设置行增量: $ cat test | nl -i 2 1
我最初有这个: 在我的文件中得到这个: This is line#1This is line #2This is line#3 所以,我试过: This is line #1
对于 Google AutoML Natural Language 多标签文本分类,输入数据集的格式应该是什么?我知道对于多类分类,我需要一列文本和另一列标签。标签列每行包含一个标签。 我每个文本都有
如何开发用于 google nl api 中语法分析的树。像stanford corenlp一样使用brat注释工具来生成树。我们可以使用类似的东西来为 google nl api 的 json 响应
我需要将状态栏样式更改为黑色,我不知道如何......我试图把 索引.xml:
我有一个包含大约 14,700 条记录的数据集。我希望在 ibm watson 上训练它,目前我正在使用试用版。分类器训练所需时间的粗略估计是多少?数据集的每条记录包含一个句子,第二列包含类名。 最佳
我正在尝试创建或至少了解 www.ziggo.nl 网站中使用的技术。他们以如此巧妙的方式实现了 ajax!如果您点击“Producten”,整个页面都会加载(注意链接/#producten/),如果
这是我尝试执行的任务,如果有人可以提供帮助,将不胜感激。所以在这段代码中,它将只显示封面。我读了http://www.siegmann.nl/static/epublib/apidocs/您可以使用
我有一个支持多语言的 Java 应用程序。当我更改语言时(在首选项对话框中),整个应用程序的语言都会发生变化,包括 JFileChooser 等 Swing 组件的语言。这对英语、西类牙语和法语来说是
我是一名优秀的程序员,十分优秀!