在ubuntu下配置libmodbus3.1.4

 

https://github.com/stephane/libmodbus

在上面的地址下载库。

然后安装以下工具:

sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

把安装包解压到某目录下,cd 到此目录

cd ~/libmodbus-master

运行

./autogen.sh

生成脚本configure

 

./configure && make install //可能权限不够,在前面加sudo

显示

----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 

 

 

 

安装完成,测试:在libmodbus-master下运行

make check

显示

============================================================================
Testsuite summary for libmodbus 3.1.4
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
 

在两个终端分别运行以下测试程序

cd ~/libmodbus-master/tests
./unit-test-server
cd ~/libmodbus-master/tests
./unit-test-client

可以看到两端的输入输出,配置成功。

官方提示我们可以用pkg-config.查了一下:

库文件编译完成后,会在{installed_home/lib/}下生成产生一个名为pkgconfig的目录,内含该链接库的.pc文件,此文件记录了改库的相关信息。为了能被查找读取到,需要将该.pc文件安装到 /usr/lib/pkgconfig/ 目录中,或在PKG_CONFIG_PATH环境变量中加入该.pc文件的安装路径。这样做的目的是为了使依赖此库的其它程序能够借助pkg-config自动链接该库,避免编译期错误。

然后在文件夹中可以看到libmodbus.pc,把此文件夹加入到pkg-config的搜索范围,参考如下:

export PKG_CONFIG_PATH=/home/wxw/libmodbus-master/

查看PKG PATH

echo $PKG_CONFIG_PATH

 然后检查下能不能查到

$ pkg-config --cflags libmodbus
-I/usr/local/include/modbus

$ pkg-config --libs libmodbus
-L/usr/local/lib -lmodbus

–-list-all     列出所有已安装的共享库
-–cflags     列出指定共享库的预处理和编译flag。
-–libs     列出指定共享库的链接flag。

之后使用libmodbus库时,就可以这么写:

$ gcc sample.c -o sample `pkg-config --cflags --libs libmodbus`

g++ main.cpp robot_modbus.cpp -o modrobot `pkg-config –libs libmodbus`
 

使用 pkg-config 的 –cflags 参数可以给出在编译时所需要的选项,而 –libs 参数可以给出连接时的选项。例如,假设一个 sample.c 的程序用到了libmods库,就可以这样编译:

$ gcc -c `pkg-config –cflags libmods` sample.c

然后这样连接:

$ gcc sample.o -o sample `pkg-config –libs libmods`

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章