C2059 Error Using extern "C" in .C Source Files

C2059 Error Using extern "C" in .C Source Files


The information to this article applies to:
The Microsoft C/C++ Compiler included with: - Microsoft Visual C++, 32-bit Edition, versions 2.0, 2.1, 2.2, 4.0,

     4.1, 5.0

SUMMARY
Use of "extern "C"" in source files that have a .C extension causes error C2059, and results in this error message:

   error C2059:syntax error:'string'

CAUSE
In the C language, the string-literal "C" is not recognized. It is used in C++ to prevent name decoration.

RESOLUTION
Remove the string-literal "C" in extern declarations, or use the following in the function declaration:


   #ifdef __cplusplus
      extern "C"
   #endif 

Build started: Project: Fire_Alarm *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\迅雷下载\keil ruanj\ARM\ARMCC\Bin' Build target 'Target 1' assembling startup_stm32f10x_md.s... compiling lcd1602.c... hardware\lcd1602.c(1): error: #5: cannot open source input file "i2c_lcd.h": No such file or directory #include "i2c_lcd.h" hardware\lcd1602.c: 0 warnings, 1 error compiling i2c.c... hardware\i2c.h(6): error: #20: identifier "I2C_HandleTypeDef" is undefined extern I2C_HandleTypeDef hi2c1; hardware\i2c.c(3): error: #20: identifier "I2C_HandleTypeDef" is undefined I2C_HandleTypeDef hi2c1; hardware\i2c.c(8): error: #20: identifier "I2C_DUTYCYCLE_2" is undefined hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hardware\i2c.c(10): error: #20: identifier "I2C_ADDRESSINGMODE_7BIT" is undefined hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hardware\i2c.c(11): error: #20: identifier "I2C_DUALADDRESS_DISABLE" is undefined hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hardware\i2c.c(13): error: #20: identifier "I2C_GENERALCALL_DISABLE" is undefined hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hardware\i2c.c(14): error: #20: identifier "I2C_NOSTRETCH_DISABLE" is undefined hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; hardware\i2c.c(15): warning: #223-D: function "HAL_I2C_Init" declared implicitly HAL_I2C_Init(&hi2c1); hardware\i2c.c: 1 warning, 7 errors compiling usart.c... compiling stm32f1xx_hal_cortex.c... compiling gpio.c... compiling adc.c... compiling stm32f1xx_hal_adc_ex.c... compiling main.c... User\main.c(4): error: #5: cannot open source input file "i2c_lcd.h": No such file or directory #include "i2c_lcd.h" User\main.c: 0 warnings, 1 error compiling ds18b20.c... compiling system.c... compiling stm32f1xx_hal_msp.c... compiling stm32f1xx_hal.c... compiling stm32f1xx_hal_dma.c... compiling stm32f1xx_hal_adc.c... compiling stm32f1xx_it.c... compiling tim.c... compiling stm32f1xx_hal_gpio_ex.c... compiling stm32f1xx_hal_flash_ex.c... compiling stm32f1xx_hal_exti.c... compiling stm32f1xx_hal_flash.c... compiling stm32f1xx_hal_gpio.c... compiling stm32f1xx_hal_rcc_ex.c... compiling stm32f1xx_hal_pwr.c... compiling system_stm32f1xx.c... compiling stm32f1xx_hal_rcc.c... compiling stm32f1xx_hal_uart.c... compiling stm32f1xx_hal_tim_ex.c... compiling stm32f1xx_hal_tim.c... ".\Objects\Fire_Alarm.axf" - 9 Error(s), 1 Warning(s). Target not created. Build Time Elapsed: 00:00:07
最新发布
08-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值