Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为基于MinGW的工具集设置sysroot?_C++_Gcc_Cmake_Cross Compiling_Raspbian - Fatal编程技术网

C++ 如何为基于MinGW的工具集设置sysroot?

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

我使用的是来自

它基于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\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中正确查找。