我不完全确定这是属于这里还是属于electronics.stackexchange.com,但由于这与IDE 设置和编译有关,我相信这是问我问题的最佳场所。
我在 Eclipse CDT 中有一个 C 项目设置。它使用 Mentor Graphics 的 Sourcery CodeBench Lite ARM 工具链。我已经安装了 Eclipse CDT 以及 GNU ARM Eclipse 插件,并尝试设置 ST.com STM32F4 Discovery 示例以在 Eclipse CDT 中编译。
编译时,编译器输出超过 200 个错误(为简洁起见缩短):
.../main.c:75: undefined reference to `STM_EVAL_PBInit'
.../main.c:77: undefined reference to `STM_EVAL_LEDInit'
.../main.c:78: undefined reference to `STM_EVAL_LEDInit'
.../main.c:79: undefined reference to `STM_EVAL_LEDInit'
.../main.c:80: undefined reference to `STM_EVAL_LEDInit'
.../main.c:83: undefined reference to `RCC_GetClocksFreq'
.../main.c:86: undefined reference to `STM_EVAL_PBGetState'
.../main.c:89: undefined reference to `STM_EVAL_LEDOn'
.../main.c:90: undefined reference to `STM_EVAL_LEDOn'
.../main.c:91: undefined reference to `STM_EVAL_LEDOn'
.../main.c:92: undefined reference to `STM_EVAL_LEDOn'
几乎所有这些项目都在stm32f4_discovery.h中定义,但由于某种原因,它们在编译期间没有得到解决。
我检查并仔细检查了该文件是否可用 C/C++ General > Paths and Symbols, Includes 选项卡,但不确定为什么事情没有解决。
该项目可在GitHub上找到,任何想要自己检查和尝试编译的人都可以使用。
我还在Github 上创建了一张票,因为我不想在这里充斥着输出信息。
只需克隆https://github.com/josefvanniekerk/stm32f4-discovery.git,将stm32f4-discovery/projects/demonstration导入 Eclipse CDT,然后尝试编译。
Sourcery CodeBench Lite 工具链是在 Mac OS X 上从arm-cs-tools-build.sh编译的,并且需要Eclipse GNU ARM 插件,并且可以使用他们的更新站点安装到 Eclipse 中