致命错误:modbus.h:没有这样的文件或目录

时间:2014-05-12 13:00:38

标签: c linux makefile modbus

我希望我的程序在Linux上使用libmodbus库时会遇到很多困难。

我已经使用命令sudo make install和make之后安装了libmodbus,但问题是当我想在我的C程序中链接库时。

我现在的Makefile就像:

all: test
test: main.o com.o
  gcc main.o com.o -o test

main.o: main.c
    gcc -c main.c -o main.o

com.o: com.c
    gcc -c com.c -Wl,-rpath=/usr/local/lib -Wl,LIBDIR -o com.o

clean:
    rm -rf *o test

在我的com.c文件中,我包含了modbus.h这样的文件:

#include <modbus.h>

我总是得到错误:

fatal error: modbus.h: No such file or directory.

如果在我进行安装时它可以提供帮助,代码会将此返回给我:

  

如果您碰巧想要链接已安装的库   在给定目录LIBDIR中,您必须使用libtool和   指定库的完整路径名,或使用&#39; -LLIBDIR&#39;   在链接期间标记并至少执行以下操作之一:

     
      
  • 将LIBDIR添加到`LD_LIBRARY_PATH&#39;执行期间的环境变量
  •   
  • 将LIBDIR添加到`LD_RUN_PATH&#39;链接期间的环境变量
  •   
  • 使用`-Wl,-rpath -Wl,LIBDIR&#39;链接器标志
  •   
  • 请系统管理员将LIBDIR添加到`/etc/ld.so.conf'
  •   

1 个答案:

答案 0 :(得分:2)

似乎modbus.h不在标准包含目录中。 您应该将-I/<includes_path>标志添加到gcc选项。

我想这里:

gcc -I/<include_dir_path> -c com.c -Wl,-rpath=/usr/local/lib -Wl,LIBDIR -o com.o