c++ - arm-none-eabi-g++ 系统包含路径
问题描述
我有以下头文件 Foo.h:
#ifndef _FOO_H_
#define _FOO_H_
#include <type_traits>
class FooC
{
public:
FooC();
~FooC() = default;
};
#endif // _FOO_H_
和对应的源文件Foo.cpp:
#include "Foo.h"
FooC::FooC()
{
}
我可以使用以下命令编译源文件
C:\\GNU-Tools-ARM-Embedded\\6-2017-q2-update\\bin\\arm-none-eabi-g++.exe -IC:/gnu-tools-arm-embedded/6-2017-q2-update/arm-none-eabi/include/c++/6.3.1 -std=gnu++14 -o Foo.cpp.obj -c Foo.cpp
或者
C:\\GNU-Tools-ARM-Embedded\\7-2018-q2-update\\bin\\arm-none-eabi-g++.exe -IC:/gnu-tools-arm-embedded/7-2018-q2-update/arm-none-eabi/include/c++/7.3.1 -std=gnu++14 -o Foo.cpp.obj -c Foo.cpp
但是当我将-IC:/gnu-tools-arm-embedded/...与-isystem C:/gnu-tools-arm-embedded/...交换时
C:\\GNU-Tools-ARM-Embedded\\6-2017-q2-update\\bin\\arm-none-eabi-g++.exe -isystem C:/gnu-tools-arm-embedded/6-2017-q2-update/arm-none-eabi/include/c++/6.3.1 -std=gnu++14 -o Foo.cpp.obj -c Foo.cpp
或者
C:\\GNU-Tools-ARM-Embedded\\7-2018-q2-update\\bin\\arm-none-eabi-g++.exe -isystem C:/gnu-tools-arm-embedded/7-2018-q2-update/arm-none-eabi/include/c++/7.3.1 -std=gnu++14 -o Foo.cpp.obj -c Foo.cpp
然后我收到很多编译错误,例如:
In file included from Foo.h:4:0,
from Foo.cpp:1:
C:/gnu-tools-arm-embedded/6-2017-q2-update/arm-none-eabi/include/c++/6.3.1/type_traits:68:3: error: template with C linkage
template<typename _Tp, _Tp __v>
^~~~~~~~
...
C:/gnu-tools-arm-embedded/6-2017-q2-update/arm-none-eabi/include/c++/6.3.1/type_traits:2660:3: error: template with C linkage
template<typename _Tp>
^~~~~~~~
我需要这个包含路径和type_traits的包含,并且不能更改为-I。有人知道这个问题的一个很好的解决方案吗?
谢谢!
解决方案
推荐阅读
- matlab - matlab FMINCON 解决方案在上限处终止
- sql - SQL 中过去 12 个月的滚动总和
- java - 为什么JVM需要最大内存容量?
- reactjs - 我可以在没有 React 的情况下使用 Recoil 吗?
- git - 是否可以在 git 子模块中使用 YAML 文件创建构建?
- php - WP echo get_user_meta 单值打印“数组”
- firebase - Cloud Functions,删除 Firestore SubCollections,是否需要 AdminToken?
- html - 如何在 Bootstrap 4 封面模板中设置主要文本?
- google-sheets - 如何将 GOOGLEFINANCE 公式与 INDEX 结合起来
- excel - 有没有办法将单元格复制为目标单元格中每一行文本的插入行(目标单元格下方的一行)?