簡體   English   中英

“錯誤:'volatile'之前的預期主表達式”

[英]“error: expected primary-expression before 'volatile'”

我正在嘗試使用MinGW 4.8.2編譯NRF驅動程序 我收到此錯誤:

在包含的文件中

b:/nrfdriver/sdk/nRF51_SDK_8.1.0_b6ed55f/components/device/nrf51.h:119:0,
                 from b:/nrfdriver/sdk/nRF51_SDK_8.1.0_b6ed55f/components/softdevice/s130/headers/nrf_soc.h:50,
                 from b:/nrfdriver/pc-ble-driver-0.5.0/driver/inc_override/nrf_soc.h:21,
                 from b:/nrfdriver/pc-ble-driver-0.5.0/driver/inc_override/app_util_platform.h:26,
                 from b:/nrfdriver/sdk/nRF51_SDK_8.1.0_b6ed55f/components/drivers_nrf/uart/app_uart.h:27,
                 from b:\nrfdriver\pc-ble-driver-0.5.0\driver\src\app_uart_pc.c:13:
C:/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/4.8.2/include/xmmintrin.h:
In function 'void _mm_setcsr(unsigned int)':
b:/nrfdriver/sdk/nRF51_SDK_8.1.0_b6ed55f/components/toolchain/gcc/core_cm0.h:164:21:
error: expected primary-expression before 'volatile'    #define   __I 
volatile             /*!< Defines 'read only' permissions   */
                     ^ driver\CMakeFiles\s130_nrf51_ble_driver.dir\build.make:297: recipe for
target 'driver/CMakeFiles/s130_nrf51_ble_driver.dir/src/app_uart_pc.c
.obj' failed

錯誤來自此行:

#define   __I     volatile             /*!< Defines 'read only' permissions                 */

這樣簡單的#define如何導致編譯器錯誤,以及如何解決該錯誤的任何想法? (升級編譯器不是一個選擇,因為該版本的驅動程序應該使用此版本的MinGW構建)。

請注意,該驅動程序本應以32位元構建,並且我正在嘗試針對64位元構建該驅動程序,如果這可能是問題的原因,那就不知道了。

如果我們還查看xmmintrin.h標頭,該怎么辦?

/* Set the control register to I.  */
extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_setcsr (unsigned int __I)
{
  __builtin_ia32_ldmxcsr (__I);
}

__I__I另一種用法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM