下载

使用git工具下载libmodbus库源码

git clone git://github.com/stephane/libmodbus

安装

下载好后会出现一个libmodbus的文件夹在当前目录下。

cd libmodbus

然后执行autogen.sh文件

./autogen.sh
orangepi@orangepizero:~/luo/libmodbus$ ./autogen.sh
configure.ac:33: installing 'build-aux/compile'
configure.ac:56: installing 'build-aux/config.guess'
configure.ac:56: installing 'build-aux/config.sub'
configure.ac:32: installing 'build-aux/install-sh'
configure.ac:32: installing 'build-aux/missing'
src/Makefile.am:2: error: Libtool library used but 'LIBTOOL' is undefined
src/Makefile.am:2:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
src/Makefile.am:2:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
src/Makefile.am:2:   If 'LT_INIT' is in 'configure.ac', make sure
src/Makefile.am:2:   its definition is in aclocal's search path.
src/Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
autoreconf: automake failed with exit status: 1--------------------------
Running autoreconf failed.
--------------------------

出现以上错误则需要安装libtool

sudo apt-get install libtool
orangepi@orangepizero:~/luo/libmodbus$ ./autogen.sh
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: linking file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: linking file 'm4/libtool.m4'
libtoolize: linking file 'm4/ltoptions.m4'
libtoolize: linking file 'm4/ltsugar.m4'
libtoolize: linking file 'm4/ltversion.m4'
libtoolize: linking file 'm4/lt~obsolete.m4'
configure.ac:33: installing 'build-aux/compile'
configure.ac:32: installing 'build-aux/missing'
src/Makefile.am: installing 'build-aux/depcomp'------------------------------------------------------
Initialized build system. You can now run ./configure
------------------------------------------------------

成功!

接着配置,在libmodbus文件夹里新建一个install文件夹用来存放编译生成的相关文件。

mkdir install
./configure --prefix=/home/orangepi/lou/libmodbus/install

/home/orangepi/lou/libmodbus/install为安装路径

输出结果为

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking for gcc option to accept ISO Standard C... (cached) none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking whether make supports nested variables... (cached) yes
checking build system type... armv7l-unknown-linux-gnueabihf
checking host system type... armv7l-unknown-linux-gnueabihf
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert armv7l-unknown-linux-gnueabihf file names to armv7l-unknown-linux-gnueabihf format... func_convert_file_noop
checking how to convert armv7l-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking byteswap.h usability... yes
checking byteswap.h presence... yes
checking for byteswap.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking linux/serial.h usability... yes
checking linux/serial.h presence... yes
checking for linux/serial.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/params.h usability... no
checking sys/params.h presence... no
checking for sys/params.h... no
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sys/types.h... (cached) yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for unistd.h... (cached) yes
checking for asciidoc... no
checking for xmlto... no
checking whether to build documentation... no
configure: WARNING: The tools to build the documentation aren't installed
checking whether __CYGWIN__ is declared... no
checking for accept4... yes
checking for getaddrinfo... yes
checking for gettimeofday... yes
checking for inet_ntoa... yes
checking for select... yes
checking for socket... yes
checking for strerror... yes
checking for strlcpy... no
checking for inline... inline
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for int64_t... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking winsock2.h usability... no
checking winsock2.h presence... no
checking for winsock2.h... no
checking whether TIOCSRS485 is declared... yes
checking whether TIOCM_RTS is declared... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/modbus-version.h
config.status: creating src/win32/modbus.dll.manifest
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating libmodbus.pc
config.status: creating config.h
config.status: creating tests/unit-test.h
config.status: executing depfiles commands
config.status: executing libtool commandslibmodbus 3.1.6===============prefix:                 /home/orangepi/luo/libmodbus/installsysconfdir:             ${prefix}/etclibdir:                 ${exec_prefix}/libincludedir:             ${prefix}/includecompiler:               gcccflags:                 -g -O2ldflags:documentation:          notests:                  yes

下一步,make&&make install

make
make install

编译成功后,在刚刚创建的install文件夹下,会输出include头文件以及lib库文件,将lib下的3个动态库libmodbus.so.x.x,项目所在环境的/usr/lib目录

sudo cp -r lib/libmodbus.so* /usr/lib

使用:

在项目makefile文件中 -L./lib -lmodbus 在调用函数的c文件中引入.h文件

Linux安装libmodbus库相关推荐

  1. Linux 安装字体库 中文字体

    Linux 安装字体库 & 中文字体 发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效: 如上图可 ...

  2. CentOS7下编译安装libmodbus库

    CentOS7下编译安装libmodbus库 下载libdmodbus源代码 编译安装lidmodbus 测试 参考资料 下载libdmodbus源代码 libmodbus官网下载页面如下图所示: 可 ...

  3. Linux 安装字体库-宋体

    由于需要宋体,所以需要自行安装 执行命令发现输入命令查看字体列表是提示命令无效: 如上图可以看出,不仅没有中文字体,连字体库都没有,那么接下来就记录一下在Linux CentOS 7中如何安装字体库以 ...

  4. linux安装FFMPEG库

    文章目录 一.使用wget下载ffmpeg4.4安装包 二.解压 三.进入解压后生成的ffmpeg-4.4文件夹 四.运行configure文件 五.编译 六.安装 七.检查是否安装成功 八.如何编译 ...

  5. Linux 安装字体库(附:中文字体包)

    文章目录 前言 一.安装相关包 二.配置相关信息 1.导入字体包 2.修改配置文件 3. 刷新配置并查看字体库 前言 由于JAVA画图时常用到Font 类对象,而这样的对象依赖于本地的字段. 新装的l ...

  6. linux系统下qt5安装qwt,Linux安装qwt库手册

    环境:Ubuntu11.04和11.10,在软件库里直接安装最新的Qt及QtCreator 太巧了! 当我在前半夜在Ubuntu11.04下安装qwt时还是6.0.2,等后半夜在11.10下安装时,q ...

  7. linux安装python库报错pywin32_Python3爬虫利器:Scrapy的安装

    Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted 14.0.lxml 3.4和pyOpenSSL 0.14.在不同的平台环境下,它所依赖的库也各不相同,所以在安装 ...

  8. linux安装的库文件,linux – 安装包库和头文件在哪里?

    在Ubuntu中下载并安装软件包后,如何查看库和头文件的写入位置?我相信这与包的.pc文件有关,但我不知道如何找到该文件. 例如,我已经下载了PCL(Point Cloud Library)软件包,然 ...

  9. linux安装pil库_python安装pil库方法及代码

    安装PIL 在Debian/Ubuntu Linux下直接通过apt安装: $ sudo apt-get install python-imaging Mac和其他版本的Linux可以直接使用easy ...

  10. linux安装python库报错pywin32_完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误...

    报错信息 最近闲来无事,用python的tkinter库开发了一款带日程提醒的万年历桌面程序.在程序开发结束开始打包时,却发现一直报错 PyInstaller cannot check for ass ...

最新文章

  1. 柱形图无数据可选中_在Excel工作表中插入一个三维柱形图
  2. 差异数据库的还原方法
  3. Permutation Sequence
  4. linux操作这样用视频,Linux下使用mencoder对视频进行操作
  5. Windows10 家庭版——开启Hyper-V虚拟机
  6. PCL:描述三维离散点的ROPS特征(Code)
  7. 背景颜色及背景图片相关的属性
  8. 开源开放 | 图数据交互可视化分析框架 InteractiveGraph v0.3 版本发布
  9. 推荐系统fmlr_推荐系统实践 0x0c FM系列(LR/FM/FFM)
  10. STM32网络之中断
  11. 你不可不知的Java引用类型之——ReferenceQueue源码详解
  12. rap韵脚大全(包含各种诗词歌曲的韵脚等)
  13. 最帅气最有魅力的win7系统下载哦!!!
  14. EFResume 一个普通的 Swift 简历模板
  15. LowMemoryKiller 的使用
  16. _id随机的 es_ES再现偷ID事件?仅与阿水ID相差1个字,玩家却释怀,原是系统作梗...
  17. 微带线microstrip和带状线stripline
  18. 最近大火的chatGPT是什么?它是怎样聊天的?
  19. 线程学习(13)-偏向锁
  20. 安装卸载Oracle

热门文章

  1. PWM波、方波的输出与捕获
  2. VS2010使用c++、gSOAP调用WebService 图文教程
  3. vr全景图如何制作?vr制作用什么软件?(详细教程)
  4. QTableView样式
  5. QTableView效率优化3 - 自定义Model的内容补充
  6. 匈牙利算法(指派问题)
  7. 计算机主板 华硕 游戏用,DIY电脑的基石,华硕TUF B360M-PLUS GAMING S游戏主板
  8. [ArcGIS] 空间分析(二) 矢量数据
  9. MQ消息队列的12点核心原理总结
  10. C++中用两个栈实现一个队列