<features.h>明明是存在的
编译命令:arm-linux-gnueabihf-g++ -std=c++11 -o gpio gpio.cpp -lgpiod -L/usr/local/lib -I/usr/local/include -I/home/eke/linux/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.4.1 --sysroot=/home/eke/linux/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf
-lgpiod: 指定链接的库,这里是 libgpiod。
-L/usr/local/lib: 指定编译器在链接时查找libgpiod库文件的路径为 /usr/local/lib。
-I/usr/local/include: 指定编译器在编译时查找libgpiod头文件的路径为 /usr/local/include。gpiod.h在这个路径下
-I/home/eke/linux/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.4.1: 指定编译器在编译时查找 C++ 标准库头文件的路径为 /home/eke/linux/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.4.1。
--sysroot=/home/eke/linux/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf: 指定编译器在查找标准系统头文件和库文件时的根路径,即交叉编译环境的根路径。
具体的错误报告输出:
求助大佬们,谢谢!
离线
下面是详细的编译过程:
离线
如果在加多一行-I/home/eke/linux/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.4.1/parallel去指向<features.h>的路径,交叉编译器就找不到上一级路径/home/eke/linux/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.4.1下的头文件。
离线
应该是编译命令头文件和库文件路径指向错误,有没有大佬指导一下,谢谢!
离线
因为安装了libgpiod。它的gpiod.h头文件就在这个路径下,如果不包含这个路径,就会报找不到这个头文件的错误。@海石生风
离线
git上看到有人也这么设置头文件路径
离线
离线
离线
因为初学者,正在自己一步一步摸索,如果有什么做不对,请提出也同样谢谢你的指导@海石生风
离线