我目前正在我的树莓派上做一个C++项目。 我使用的是最新的 Raspbian 版本并安装了 G++ 工具链(8.3.0 armhf(。
通过我的 PC 交叉编译相同的代码时,一切正常,我甚至可以使用我的 Pi 上的以下函数执行测试代码。 但是,在我的 Pi 上编译时,编译器拒绝构建我的项目。
错误是
扩展.hpp:65:75:错误:"]"标记之前的预期主表达式
有问题的行如下:
transform(mixedCase.begin(), mixedCase.end(), mixedCase.begin() [&](uint8_t _char) { return tolower(_char); });
^ error occurs here
它本身在内联函数中。 这是我使用的确切编译器版本:
c++ (Raspbian 8.3.0-6+rpi1( 8.3.0 版权所有 (C( 2018 自由软件基金会。 这是免费软件;有关复制条件,请参阅源。 没有 保证;甚至不是为了适销性或适合特定目的。
我正在使用CMake和Makefile进行构建,两者都会产生完全相同的错误消息。 以下是标准用途的 CMake 配置:
###
# Set language version
###
set(CMAKE_CXX_VERSION 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Enable GNU extensions
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS ON)
由于某种原因,在 Raspi 上编译时使用 lambda 是否不受支持? 除了依赖函数对象之外,还有其他方法吗?
变换需要四个参数,你在lambda之前忘记了一个逗号。