使用 C++11 的时候, -std=c++11参数后无法调用 M_PI 等宏定义。

使用 C++11 的时候, -std=c++11参数后无法调用 M_PI 等宏定义。

Q:在使用 C++11 的时候, -std=c++11 参数后无法调用 M_PI 等宏定义。

该问题不是 bug, 是由于M_PI 等宏定义是 GNU 扩展中的,如果要使用 GNU 扩展中的宏定义,请添加 -std=gnu++11
-std=c++11,支持 C++11 标准;
-std=gnu++11,支持 C++11 标准和 GNU 扩展特性;

扩展内容:
SylixOS 内核提供基础的 C++ 运行时支持,他不仅支持将 C++ 程序与 SylixOS 镜像一起运行, 也支持将 C++ 程序作为动态模块来装载运行。
注意: SylixOS 暂不支持 C++ 异常处理,这种异常是由 C++ 标准处理的,不是由系统处理。
(如果为应用程序,链接时加入 -lstdc++ 即可兼容标准 C++)


    • Related Articles

    • 如果系统出现了异常,如何处理?

      Q:如果系统出现了异常,如何处理? 使用以下几个 shell 命令快速定位是否为系统问题: “ps” 查看 kernel 线程是否正常; “tp” 查看有无死锁; “ints” 查看中断; “top” 查看 cpu 的使用情况; “ss” 查看当前堆栈情况(达到临界值时会报警,溢出时会造成系统崩溃) 若程序运行时设备直接重启 检查 /etc/startup.sh 脚本中是否设置了 “shstack 120000” 语句,检查 shell 任务线程栈空间大小 查看系统/应用程序状态,有如下几种: ...
    • 文件名或扩展名太长问题

      问题描述: 问题原因: 在编译时,需要链接的 .o 文件过多,IDE 中编译信息每行输出量有限,一行无法显示所有 .o 文件,因此会报“文件名或扩展名太长”的错误。 解决办法: 通过修改 Makefile 将链接的文件拆分成多次链接。 可以通过 $(info "0000000000000") //$(info "打印信息") 在 makefile 中添加打印信息 ...
    • 系统遇到哪些异常时,会导致系统重启

      Q:系统遇到哪些异常时-会导致系统重启 以 MPSOC 平台为例,在异常中断处理流程中,如果检测到如下错误,那么会系统重启: 1、发现中断点处于内核态,那么会执行重启; 2、如果由系统任务触发中断处理流程,那么会执行重启; 3、如果当前是关键错误,或当前处于中断嵌套状态中时,那么会执行重启;(ESR_EL1 寄存器的 EXC_SERROR_INT 位指示当前是否处于关键错误) 4、当前异常处理流程处于中断嵌套状态时,会执行重启 5、当出现 invalid 异常时,会执行重启;(该 invalid ...
    • RealEvo-IDE 使用简介(赠视频)

      本文介绍 SylixOS 集成开发环境 RealEvo-IDE 的功能与使用(RealEvo-IDE 使用手册 视频版) SylixOS 是一款支持对称多处理器(SMP)的大型实时操作系统,支持 ARM、 MIPS、PowerPC、 x86、 SPARC、 RISC-V 等架构处理器,支持主流国产通用处理器,如全志T3、T7、飞腾全系列、龙芯全系列等。 RealEvo-IDE 集设计、开发、调试、仿真、部署、测试功能于一体,为 SylixOS 嵌入式开发提供了完整的解决方案。 更多扩展知识见: ...
    • SylixOS 中 CTRL + C 的大致处理流程

      Q:SylixOS 中 CTRL + C 的大致处理流程 (1)当键盘按下 CTRL+C 时,主机就向目标板发送一个控制字符,其 ASSIC 码为 0x03,在 SylixOS 下常用的控制字符如下,此定义是在 tyLib.c 文件中。 /********************************************************************************************************* 全局变量(控制字 ...