我期待有很多困难使我的程序在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,并且
指定库的完整路径名,或使用'-llibdir'
在链接期间标记,并至少执行以下操作之一:
在执行期间将libdir添加到“ld_library_path”环境变量
在链接期间将libdir添加到“ld_run_path”环境变量
使用“-wl,-rpath-wl,libdir”链接器标志
让系统管理员将libdir添加到`/etc/ld.so.conf'

最佳答案

似乎modbus.h不在标准的include目录中。
您应该将-I/<includes_path>标志添加到gcc选项。
我想在这里:

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

关于c - 致命错误:modbus.h:没有此类文件或目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23609809/

10-08 22:26