c-libmodbus:如何编译包含libmodbus库的应用程序



我的应用程序在编译时遇到问题,该应用程序基于libmodbus库:https://github.com/stephane/libmodbus

我尝试使用以下命令进行编译:cc pkg-config --cflags --libs libmodbus modbus.c -o modbus

但我得到以下错误:

/usr/bin/ld: /tmp/cckdtbWy.o: in function `main':
modbus.c:(.text+0x1b): undefined reference to `modbus_new_tcp_pi'
/usr/bin/ld: modbus.c:(.text+0x5c): undefined reference to `modbus_connect'
/usr/bin/ld: modbus.c:(.text+0x8d): undefined reference to `modbus_free'
/usr/bin/ld: modbus.c:(.text+0xa3): undefined reference to `modbus_connect'
/usr/bin/ld: modbus.c:(.text+0xde): undefined reference to `modbus_read_bits'
/usr/bin/ld: modbus.c:(.text+0x11e): undefined reference to `modbus_close'
/usr/bin/ld: modbus.c:(.text+0x12a): undefined reference to `modbus_free'
collect2: error: ld returned 1 exit status

如果有任何帮助,我将不胜感激!

致以最良好的问候!

我已经解决了这个问题,我的解决方案是:

1./etc/ld.so.conf.d/中创建modbus.conf文件。

2。运行sudo ldconfig

3.使用以下命令编译应用程序/程序:

gcc <name>.c -o <name> -I/usr/local/include/modbus/ -lmodbus

这对我很有效,但我不确定第一步是否必要。

您安装了libmodbus-dev吗?你应该试试这个:sudo apt-get install -y libmodbus-dev

请参阅v3.1.6和v3.0.8:libmodbus文档

最新更新