0

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

g15_send_cmd (g15screen_fd,G15DAEMON_MKEYLEDS,mled_state);

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

“g15daemon/plugin/g15_plugin_uinput.c”

定义命令的文件位于(链接) “g15daemon/libg15daemon_client/g15daemon_clinet.h”

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

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

g15daemon:符号查找错误:/usr/lib/g15daemon/1.9.5.3/plugins/g15plugin_uinput.so:未定义符号:g15_send_cmd

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

编辑:给出了解决方案

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

4

1 回答 1

2

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

于 2013-04-11T21:41:44.957 回答