Microchip Studio中#include无法识别liblightmodbus库的问题求助
检查包含路径的层级
你把库解压到项目的debug文件夹后,假设结构是debug/lightmodbus/lightmodbus.h,那添加的包含路径必须是项目的debug文件夹路径,不能是lightmodbus子文件夹。要是加错成lightmodbus的路径,编译器会去[添加路径]/lightmodbus/lightmodbus.h找,相当于debug/lightmodbus/lightmodbus/lightmodbus.h,自然找不到。确认包含路径的添加位置
右键项目→属性→Toolchain→AVR/GNU C Compiler→Directories,在Include paths (-I)里添加路径时,要确保是针对当前项目的设置,别搞成全局的。用相对路径的话,要以项目根目录为基准,比如debug在根目录下,就填./debug。调整头文件引用写法
如果你的包含路径直接指向debug/lightmodbus,那把代码里的#include <lightmodbus/lightmodbus.h>改成#include <lightmodbus.h>;要是想保留原来的写法,就必须让包含路径指向lightmodbus的父文件夹(也就是debug文件夹)。验证库文件的纳入状态
虽然你点了“显示所有文件”并纳入项目,但要确认lightmodbus文件夹下的所有头文件和源文件都被正确添加——右键lightmodbus文件夹,选“Include In Project”,确保所有子文件都被勾选,有时候只加了文件夹,里面的文件没被真正包含进项目。清理缓存后重新构建
编译缓存可能搞出问题,点菜单栏的Project→Clean Solution,再选Rebuild Solution,让编译器重新读取所有路径和文件。
内容的提问来源于stack exchange,提问作者Phoxic

