簡體   English   中英

STM32 Cmake STM32Workbench項目

[英]STM32 Cmake STM32Workbench project

我正在嘗試為STM32項目編寫CMakeLists.txt文件。 我正在使用此倉庫中的cmake文件: https : //github.com/ObKo/stm32-cmake 從命令行構建可以正常工作。 我是這樣做的:

cmake -C "..\STM32F207ZCTx_config.cmake" -DCMAKE_BUILD_TYPE=DEBUG -G "Eclipse CDT4 - Unix Makefiles" ..
make.exe -j4

在緩存文件中,我設置了一些變量:

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 Workbench時,它會生成許多有關stdint.h類型(例如uint8_t,int32_t)的“無法解決的外部錯誤”。

經過調試此問題后,我意識到缺少一些由stdint.h標頭使用的定義。 我使用以下命令簽出了編譯器:

arm-none-eabi-gcc.exe -dM -E out.h

並在arm-none-eabi-gcc中獲得了定義列表:

#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項目的方法?

任何幫助將不勝感激。

問題出在STM32Workbench中。 源從構建和索引器中排除。

要解決此問題,請右鍵單擊源,屬性,C / C ++常規,預處理器包含路徑,然后取消選中從構建中排除資源 現在,索引器可以找到所有源,並且所有“無法解決的外部”錯誤都消失了!

暫無
暫無

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

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