c - 命令上的符号查找错误

标签 c

我正在尝试在键盘驱动程序中执行一些代码,这是一个看起来像 this 的第三方软件。可以在插件文件中运行我尝试执行的命令,该文件与命令需要发送到的守护进程一起编译。该命令如下所示。

g15_send_cmd (g15screen_fd,G15DAEMON_MKEYLEDS,mled_state);

here's我正在使用并尝试运行命令的代码(它与守护程序一起编译为插件。在未编译的源代码中,它是

“g15daemon/plugin/g15_plugin_uinput.c”

定义命令的文件位于 (关联) "g15daemon/libg15daemon_client/g15daemon_clinet.h"

而 g15macro(第三个软件)由于各种原因从守护进程外部运行,我不想(而且几乎不能)使用它,其中之一是按下按键时命令的执行速度。

所以程序编译起来似乎没有错误。但是如果我上面指定的代码激活,驱动程序(守护进程)就会崩溃,给出

g15daemon: symbol lookup error: /usr/lib/g15daemon/1.9.5.3/plugins/g15plugin_uinput.so: undefined symbol: g15_send_cmd

我做错了什么或者我在这里错过了什么? (如果插件文件中的代码被该 switch 命令弄得很难看,我很抱歉,但我不知道如何做得更好,因为我根本不了解 C,我身后只有 Py和 C#)

编辑:给出了解决方案

但我不知道如何添加链接器标志,因为它链接到正在编译的程序的一部分,它还能工作吗?

最佳答案

您忘记将您的插件与 g15daemon_client 库链接。修复此问题的简单方法是将 -lg15daemon_client 添加到链接器标志。

关于c - 命令上的符号查找错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15959333/

相关文章:

c++ - 以相反的顺序添加选项卡?

c - 仅使用 Win32 将 HBITMAP 保存为 *.bmp 文件

c - 将指针作为参数传递给 C 中的函数

c - 为什么我的程序的常驻集大小 (RSS) 大于可执行文件?

C - 在线程中的函数中传递字符串并返回它会导致不存在、不可打印的字符串?

c - 文件中的奇怪行为计数行

c - 搜索并替换字符串并忽略空字节字符

c - OpenCL如何保存和重用一些命令?

c - 改变 objective-c 标准有什么用吗?

c - 数组的最小和分区