maxchen 发表于 2010-9-24 09:23:34

请问使用GUI就一定要用DFS吗?

我的应用比较简单,不需要文件列表,不需要汉字字库,也不需要显示图片
但连接的时候老是说
|| Error: L6218E: Undefined symbol rtgui_filerw_create_file (referred from image.o).
|| Error: L6218E: Undefined symbol hz_bmp_font_engine (referred from hz16font.o).
|| Error: L6218E: Undefined symbol closedir (referred from filelist_view.o).
|| Error: L6218E: Undefined symbol dfs_stat (referred from filelist_view.o).
|| Error: L6218E: Undefined symbol opendir (referred from filelist_view.o).
|| Error: L6218E: Undefined symbol readdir (referred from filelist_view.o).

但配置文件里好像没有看到不使用这些组件的开关

shaolin 发表于 2010-9-24 09:51:49

RTGUI_USING_STDIO_FILERW
RTGUI_USING_DFS_FILERW
rtgui_config.h中这两个宏不要定义就行了。

maxchen 发表于 2010-9-24 10:01:39

还是不行呢!我用的是0.3.0正式版
rtgui_config.h内容如下:
/*
* File      : rtgui_config.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 2009, RT-Thread Development Team
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rt-thread.org/license/LICENSE
*
* Change Logs:
* Date         Author       Notes
* 2009-10-16   Bernard      first version
* 2010-02-08   Bernard      move some RTGUI options to bsp
*/

#ifndef __RTGUI_CONFIG_H__
#define __RTGUI_CONFIG_H__

/* RTGUI options */

#ifdef _WIN32
/* name length of RTGUI object */
#define RTGUI_NAME_MAX                12
/* support 16 weight font */
#define RTGUI_USING_FONT16
/* support Chinese font */
//#define RTGUI_USING_FONTHZ
/* use small size in RTGUI */
#define RTGUI_USING_SMALL_SIZE
/* use mouse cursor */
/* #define RTGUI_USING_MOUSE_CURSOR */
/* default font size in RTGUI */
#define RTGUI_DEFAULT_FONT_SIZE        12

//#define RTGUI_USING_STDIO_FILERW
//#define RTGUI_IMAGE_PNG
//#define RTGUI_IMAGE_JPEG
#define RTGUI_USING_FONT12
//#define RTGUI_USING_HZ_BMP
#define RTGUI_MEM_TRACE
#endif

#if RTGUI_DEFAULT_FONT_SIZE == 0
#define RTGUI_DEFAULT_FONT_SIZE 12
#endif

#define RTGUI_SVR_THREAD_PRIORITY                15
#define RTGUI_SVR_THREAD_TIMESLICE                5
#ifdef RTGUI_USING_SMALL_SIZE
#define RTGUI_SVR_THREAD_STACK_SIZE                1024
#else
#define RTGUI_SVR_THREAD_STACK_SIZE                2048
#endif

#define RTGUI_APP_THREAD_PRIORITY                25
#define RTGUI_APP_THREAD_TIMESLICE                5
#ifdef RTGUI_USING_SMALL_SIZE
#define RTGUI_APP_THREAD_STACK_SIZE                1024
#else
#define RTGUI_APP_THREAD_STACK_SIZE                2048
#endif

#endif

shaolin 发表于 2010-9-24 10:17:18

哦,0.3.0应该是需要修改下代码的,可以参考下SVN中的代码,或者直接在链接出错的地方加如下代码吧
#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
#endif

maxchen 发表于 2010-9-24 10:36:57

好的,我先试试,谢谢

maxchen 发表于 2010-9-24 11:50:47

我改用trunk的代码了,然后把目录结构改成这样
root ----
       |
       |-------- prj_gui
       |
       |-------- rtt
       |
       |-------- stm32_lib

我原来用0.3.0的时候也是这样的结构的,不过现在的问题是,执行scons后的老是出这样的错误
E:\stm32\prj\rtt\prj_gui>scons -c
scons: Reading SConscript files ...
File "E:\stm32\prj\rtt\prj_gui\rtconfig.py", line 55

    EXEC_PATH   = 'D:/tools/keil'
^
IndentationError: unindent does not match any outer indentation level

目录路径都是对的,改成CROSS_TOOL='gcc'也是一样的错误,不会python,看着很迷糊啊

ffxz 发表于 2010-9-24 20:08:53

python的语法稍微有些不一样,估计你改动编译脚本了吧

python代码对于代码缩进有严格的要求,它是依赖缩进来识别作用域的,所以缩进不一致或空格和TAB(制表符)混合都会导致错误。你上面这个错误就很像是空格和TAB混用了,你可以用编辑器把所有的TAB转换成空格试试

maxchen 发表于 2010-9-24 20:53:50

原来是这样,我现在暂时把keil那几句删除就可以了
我明天再修改一下,谢谢
页: [1]
查看完整版本: 请问使用GUI就一定要用DFS吗?