libmodbus:如何编译包含 libmodbus 库的应用程序?
libmodbus: how to compile application including libmodbus library?
我在编译基于 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
如有任何帮助,我将不胜感激!
此致!
你安装了libmodbus-dev
吗?你应该试试这个:sudo apt-get install -y libmodbus-dev
.
参见 v3.1.6 和 v3.0.8:libmodbus docs
我已经解决了这个问题,我的解决方案是:
1. 在 /etc/ld.so.conf.d/
.
中创建 modbus.conf
文件
2. 运行 sudo ldconfig
.
3. 使用以下命令编译 application/program:
gcc <name>.c -o <name> -I/usr/local/include/modbus/ -lmodbus
它对我有用,但我不确定第一步是否必要。
我在编译基于 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
如有任何帮助,我将不胜感激!
此致!
你安装了libmodbus-dev
吗?你应该试试这个:sudo apt-get install -y libmodbus-dev
.
参见 v3.1.6 和 v3.0.8:libmodbus docs
我已经解决了这个问题,我的解决方案是:
1. 在 /etc/ld.so.conf.d/
.
modbus.conf
文件
2. 运行 sudo ldconfig
.
3. 使用以下命令编译 application/program:
gcc <name>.c -o <name> -I/usr/local/include/modbus/ -lmodbus
它对我有用,但我不确定第一步是否必要。