编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

时间:2021-07-30 07:45:59

标题表述的禁绝确,大意是移植到WIN10的PC机,Intel I5。
比来因为项目接触了FreeRTOS 实时操纵系统,想对这个操纵系统有一个更深入的了解,所以决定下载源码看看,下面这个链接的随书一起的源码。

FreeRTOS 源码下载链接:

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

打开源码,看到它的portable/目录针对的是 "MSVC-MingW",应该在PC机上编译通过。

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

开发环境

嫌VS体积太大了,就用CodeBlocks吧。需要从 CodeBlocks 官网下载带"mingw"的版本,例如: codeblocks-16.01mingw-setup.exe
下载页面:

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

安置、新建工程就不详细写了,复制FreeRTOS整个目录到CodeBlocks工程目录,添加如下文件到CodeBlocks 工程,我这里只添加了一个demo到工程。

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

编译、链接问题的解决

编译可能提示找不到文件"FreeRTOS.h",别着急,应该是这个文件没有添加到搜索路径,打开"Project build options" 然后添加如下文件到 "Search Directories" 就可以了。

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

头文件问题解决了,但是又呈现了其他的问题,例如这个函数 timeGetDevCaps() 是无效的引用,Google 之后发明这个函数是 windows 平台使用的,那么
解决步伐是添加头文件 "Windows.h". 后来发明不用加,因为是ld错误,不是编译错误,所以只用把 winmm.dll 添加到链接选项就可以

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

但是再次编译,ld错误,依然是这个函数,,怎么办?按照适才的 google ,这个函数它的库文件和动态连接文件分袂是"winmm.lib" 和 "winmm.dll",那么在工程设置里面添加这个文件,如下:

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

在编译的时候,还可能遇到 port.c 中有一个宏 STACK_SIZE_PARAM_IS_A_RESERVATION未定名的情况,不妨,直接删除就可以了。

运行功效

颠末上面的折腾,终于能够运行了,功效如下:

编译、链接问题的解决 编译可能提示找不到文件"FreeRTOS.h"

声明

欢迎转载,请注明来由和作者,同时保存声明。
作者:LinTeX9527
来由:https://home.cnblogs.com/u/LinTeX9527/
本博客的文章如无特殊说明,均为原创,转载请注明来由。如未经作者同意必需保存此段声明,且在文章页面明显位置给出原文连接,否则保存追究法令责任的权利。