C++ 如何为基于MinGW的工具集设置sysroot?
我使用的是来自 它基于MinGW(我从它的文档中了解到)。它与来自Raspbian的sysroot copy一起安装,带有库和头 问题:如何为此工具集设置sysroot文件夹(例如使用env变量) 例如,在执行标记时。make包含:C++ 如何为基于MinGW的工具集设置sysroot?,c++,gcc,cmake,cross-compiling,raspbian,C++,Gcc,Cmake,Cross Compiling,Raspbian,我使用的是来自 它基于MinGW(我从它的文档中了解到)。它与来自Raspbian的sysroot copy一起安装,带有库和头 问题:如何为此工具集设置sysroot文件夹(例如使用env变量) 例如,在执行标记时。make包含: C_INCLUDES = -I/opt/vc/include 可在以下位置访问此文件夹:C:\SysGC\raspberry\arm linux gnueabihf\sysroot\opt\vc\include 工具集二进制文件安装在C:\SysGC\rasp
C_INCLUDES = -I/opt/vc/include
可在以下位置访问此文件夹:C:\SysGC\raspberry\arm linux gnueabihf\sysroot\opt\vc\include
工具集二进制文件安装在C:\SysGC\raspberry\arm linux gnueabihf\bin\中(可通过%PATH%访问)
但编译器和链接器不会在该sysroot文件夹中查找库和头。
我仍然可以为cmake传递完整的windows主机路径,但设置一次并保留原始cmake配置将更加优雅和方便
我试着做一些类似的事情
set SYSROOT=C:\SysGC\raspberry\arm-linux-gnueabihf\sysroot
但它不起作用。gcc编译器有一个选项--sysroot,但它似乎没有通过cmake/make工具链正确传递
有什么建议吗?该文件夹不应该被称为
sysroot
而不是sysroot吗?这是原始安装程序对其命名的方式。我可以根据你的建议试着换一下。我试过了。名字是正确的。将其更改为“sys root”后,工具集找不到“stdio.h”标题(在\usr\include中)。您是否可以尝试使用-v
编译一个简单的应用程序,它应该告诉您使用/搜索了哪些include和库路径。我使用了该选项,谢谢。使用的编译器是arm-linux-gnueabihf-g++
。cmake以-I/opt/vc/include
格式生成include选项。这样提供使得编译器查找不存在的路径/opt/vc/include。如果像-I=/opt/vc/include
这样提供,编译器将在主机sysroot中正确查找。