我期待有很多困难使我的程序在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/