首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32 Cmake STM32Workbench项目

STM32 Cmake STM32Workbench项目
EN

Stack Overflow用户
提问于 2018-09-14 07:06:42
回答 1查看 1.1K关注 0票数 2

我正试图为我的CMakeLists.txt项目编写一个STM32文件。我正在使用来自回购:https://github.com/ObKo/stm32-cmake的cmake文件。从命令行构建很好。我就是这样做的:

代码语言:javascript
复制
cmake -C "..\STM32F207ZCTx_config.cmake" -DCMAKE_BUILD_TYPE=DEBUG -G "Eclipse CDT4 - Unix Makefiles" ..
make.exe -j4

在缓存文件中,设置了一些变量:

代码语言:javascript
复制
set(CMAKE_MAKE_PROGRAM "D:/STM32Workbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.16.0.201807130628/tools/make/make.exe"  CACHE STRING "stm32 make")
set(CMAKE_TOOLCHAIN_FILE "stm32-cmake/gcc_stm32.cmake" CACHE STRING "stm32 toolchain")
set(TOOLCHAIN_PREFIX "D:/STM32Workbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.16.0.201807130628/tools/compiler" CACHE STRING "arm toolchain path")

当我将已创建的项目导入STM32工作台时,它会生成许多与stdint.h类型(例如uint8_t、int32_t)有关的“未解决的外部”错误。

在调试了这个问题之后,我意识到缺少了一些由stdint.h标头使用的定义。我使用以下命令签出了编译器:

代码语言:javascript
复制
arm-none-eabi-gcc.exe -dM -E out.h

得到了“手臂”中的定义列表-无-gcc:

代码语言:javascript
复制
#define __UINTMAX_TYPE__ long long unsigned int
#define __INT_FAST16_TYPE__ int
#define __INT_FAST64_TYPE__ long long int
#define __INT_FAST32_TYPE__ int
#define __UINT_LEAST16_TYPE__ short unsigned int
#define __SIZE_TYPE__ unsigned int
#define __INT_LEAST16_TYPE__ short int
... and much more

stdint.h需要这些定义来创建正确的uint8_t和其他类型。

我可以手动地将这些定义添加到Eclipse项目中,但我想知道是否有方法从CMake自动将这些定义添加到Eclipse项目中?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-17 07:04:35

问题出在STM32Workbench。源被排除在构建和索引器之外。

要修复它-鼠标右键点击源代码,属性,C/C++通用,预处理器包括路径,取消检查排除资源从构建。现在索引器能够找到所有的源,所有“未解决的外部”错误都消失了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52326618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档