直接下载下来的rtthread 0.40 beta1,解压后通过设置rtconfig.py设置keil的编译器,在bsp/mini2440目录,用scons —target=MDK命令,可以正常编译完成,同时其生成Keil MDK工程project.uvproj,但是在MDK的IDE里这个工程死活编译不过。
问题出在dfs_def.h所引用的头
我试着把minilibc的文件给他用,并且检查了include文件的顺序与scons编译时的include路径一致,但是依然不过。
疑问1:为什么scons在缺失文件的情况下可以编译成功?
疑问2:怎么才能在MDK中正确编译包含完全功能的rtthread?需要正确的工程文件。
疑问3:scons的include及LIB路径,MDK的路径该怎么对应才能在两个环境都编译?
因为我需要增加自己的功能,会有静态库的链接,因此希望能在MDK的IDE这一个环境中完成编写代码,调试的工作,请有经验的人给予指导,谢谢了!
当使用armcc,keil mdk时,rtconfig.h中如下的选项不能打开:
//#define RT_USING_MINILIBC
//#define RT_USING_NEWLIB
//#define RT_USING_PTHREADS
并且在rtconfig.py中需要把编译工具设定为keil。而scons编译时,它会自动根据编译工具设置来选择是否使用libc库。
Thanks bernard!
但是我还有一个疑问,你说在rtconfig.py中需要把编译工具设定为keil,scons编译时,它会自动根据编译工具设置来选择是否使用libc库,那么也就是说rtconfig.py设定为keil,scons —target=MDK也是用mdk的编译器armcc来编译的了,但是为什么我在kerl的inc目录并没能找到libc的头文件和库文件,而且从scons编译过程的脚本看起来并没有去链接libc的头文件和库文件。按照我的理解,scons用keil也应该编译不过才对?可以帮我解释解释么,我才接触rtthread,所以希望了解的深入一点点。谢谢