所以,我试着建立一个程序,用gcc编译我的所有代码和windows中的东西。 (与visual studio一起使用)。
直到现在,当我有一个包含时,它已经相当不错了。 问题是它无法找到.H文件,因为它在另一个目录中。 但即使我添加-Idir [PATH1,PATH2,PATH3],它仍然可以找到它。这是我尝试编译的程序
#include <stm32f10x.h> /* STM32F103 definitions */
/*----------------------------------------------------------------------------
wait function
*----------------------------------------------------------------------------*/
void wait (void) {
int d;
for (d = 0; d < 2000000; d++); /* only to delay for LED flashes */
}
/*----------------------------------------------------------------------------
Main Program
*----------------------------------------------------------------------------*/
int main (void) {
unsigned int i; /* LED variable */
RCC->APB2ENR |= (1UL << 3); /* Enable GPIOB clock */
GPIOB->CRH = 0x33333333; /* PB.8..16 defined as Outputs */
while (1) { /* Loop forever */
for (i = 1<<8; i < 1<<15; i <<= 1) { /* Blink LED 0,1,2,3,4,5,6 */
GPIOB->BSRR = i; /* Turn LED on */
wait (); /* call wait function */
GPIOB->BRR = i; /* Turn LED off */
}
for (i = 1<<15; i > 1<<8; i >>=1 ) { /* Blink LED 7,6,5,4,3,2,1 */
GPIOB->BSRR = i; /* Turn LED on */
wait (); /* call wait function */
GPIOB->BRR = i; /* Turn LED off */
}
}
}
这是我的armcc编译器选项。 -
C:/Keil/ARM/ARMCC/bin/armcc.exe -c --dwarf2 --MD -O0 --cpu = cortex-m4 -Idir [,C:/ Keil / ARM / INC /,C: / Keil / ARM / CMSIS / Include /,C:/ Keil / ARM / INC / ST / STM32F10x /] -Jdir [,C:/ Keil / ARM / INC /,C:/ Keil / ARM / CMSIS / Include /, C:/ Keil / ARM / INC / ST / STM32F10x /] Blinky.c
我得到的错误是: 错误5:无法打开源输入文件“stm32f10x.h”没有这样的文件或目录 #include / * STM32F103定义* /
即使我包含路径,为什么会出现此错误? 我有没有正确地包括我的pahts? 任何积分,信息或任何东西都非常受欢迎!
答案 0 :(得分:1)
根据我对-I选项的Keil documentation的解读,您的命令行应如下所示:
C:/Keil/ARM/ARMCC/bin/armcc.exe -c --dwarf2 --MD -O0 --cpu=cortex-m4 -IC:/Keil/ARM/INC/,C:/Keil/ARM/CMSIS/Include/,C:/Keil/ARM/INC/ST/STM32F10x/ -JC:/Keil/ARM/INC/,C:/Keil/ARM/CMSIS/Include/,C:/Keil/ARM/INC/ST/STM32F10x/ Blinky.c