交叉编译 tclsh

 

转自美女硕士 LNancy

http://blog.youkuaiyun.com/carry1314lele/archive/2008/07/15/2653056.aspx

 

1.熟悉基本语法:
    《Tcl&Tk 快速入门》
   
2.下载运行tcl工具:
    下载网址;http://gd.tuwien.ac.at/languages/tcl/scriptics/tcl8_4/
          http://www.tcl.tk/software/tcltk/download.html  (暂时无法下载)
    解压,tar.gz的用tar -zxvf file.tar.gz,
          tar.bz2的用bzip2 -d file.tar.bz2
   
   
    注:*a1 是alpha版本。
        开发版本->alpha版本->beta版本->正式版本,alpha, beta都表示还没有正式发布,处于测试状态。
        内核版本单数为测试版本,双数为稳定版本,正式发布版本。

3. 重新创建一个自己的OMAP NFS 根目录,创建方法参考JFFSCmds.txt.

 

4. tcl 安装

    step1.OMAP目标板上创建可执行文件安装目录/usr/share/tcl。
    step2.编译平台Linux上创建编译得到的可执行文件存放目录并且进入此目录。
        >cd /home/rlu/NFS_OMAP5912/rootfs/usr/src/tcl8.5a3
        >mkdir linux-omap
        >cd linux-omap
    step3.在此目录下创建脚本文件doit,并且执行,内容如下:
        -------------------------------------------------------------  |
        |    #!/bin/sh                                              |
        |    ../configure --prefix=/usr/share/tcl                   |
        |                                                              |
        ----------------------------------------------------------------
        执行后,在linux-omap目录下生成Makefile等文件。
        如果想清理本目录下的所有配置文件,可以用命令:
        >make distclean
    step4. 修改Makefile 文件(连接器)。
        SHLIB_LD = arm-linux-gcc -pipe -shared
    step5. 开始编译,在目录linux-omap下执行:
        >make CC=arm-linux-gcc 
    step6. 安装然后cp到目标板有点问题。
        >make install 
        执行过程中,停止在install-tzdata,
    step7. 在 编译平台查看Makefile,并且修改install-tzdata,install-msgs 中执行的“ ./tclsh ”为“tclsh”,使此处用编译平台的tclsh。
        修改后执行 > make install.于是所有文件安装到编译平台上 --prefix指定的安装目录下。
    step8. 将编译平台--prefix指定目录 /usr/src/share/tcl拷贝到目标平台相应的安装目录下/usr/src/share/tcl。
    step9. 创建链接 >ln -s /usr/share/tcl/bin/tclsh8.5 /usr/bin/tclsh
   
   
    不同版本的安装说明:http://www.tcl.tk/doc/howto/compile.html#unix
                http://www.linuxfromscratch.org/lfs/view/   
                http://man.chinaunix.net/linux/lfs/LFS-6.1.1/chapter05/expect.html (中文)
                http://sharpwind9.spaces.live.com/blog/cns!70CC4D35AA4E19C4!298.entry(中文)
   
5. expect 安装
         待补充        
6. 隔了这么久重新编译tcl,过程如下

  下载tcl8.5.7

   网上听说有bug,所以解压后,进入unix目录,执行#sed -i "s/relid'/relid/" configure (以防万一)

   使用工具链为arm-uclibc-3.4.6,操作系统是ubuntu 10.10 kernel 2.6.35-22-generic

   ./configure --host=arm-linux

   最后报错 multiple definition of `fixstrtod'

   网上国外友人研究过,uclinux 需要configure 前

   export tcl_cv_strtod_buggy=1

   照做后,重新编译顺利通过。

学习网站:
    http://tclchina.com
    http://www.tcl.tk/
    http://tcl.sourceforge.net/


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/carry1314lele/archive/2008/07/15/2653056.aspx

<think>好的,我现在需要回答用户关于TCL shell (tclsh)的介绍及用途的问题。首先,我应该回忆一下Tcl的基本知识,确保信息准确。Tcl是“工具命令语言”的缩写,而tclsh就是它的命令行解释器,类似于其他脚本语言的解释器,比如Python的python或Bash的bash。用户可能想知道tclsh是什么,它的主要功能和典型应用场景。 接下来,我需要整理用户提供的引用资料。引用[1]提到在Tcl/Tk脚本中调用Shell脚本,展示了一个例子,用exec命令执行bash脚本,这可能说明tclsh可以与其他脚本交互。引用[2]给出了一些学习资源链接,可能帮助用户进一步学习Tcl、Shell和Python,但这里主要关注Tcl部分。引用[3]和[4]涉及在Tcl中运行Linux脚本和后台命令,这应该属于tclsh的用途之一。 用户的问题包括两个部分:介绍tclsh和它的用途。我需要分点说明,结构清晰。可能需要包括以下几点:定义、交互式环境、脚本执行、与其他语言集成、跨平台支持、自动化任务、测试和调试工具开发等。 需要确保使用正确的中文术语,并且行内公式或代码使用$...$或$$...$$格式。不过当前问题不涉及数学公式,但可能需要代码示例。例如,在引用[1]中的例子,用户展示了如何在Tcl脚本中调用Shell脚本,这可以用代码块展示,同时符合用户的格式要求。 另外,用户要求生成相关问题,我需要考虑用户可能进一步询问的内容,比如tclsh与bash的区别、如何调用外部命令、调试工具的使用等。需要确保问题相关且有引导性。 现在需要检查是否有遗漏的信息点,是否覆盖了tclsh的主要用途,以及是否引用了正确的资料。例如,引用[4]提到在后台运行命令和子进程管理,这可以归入系统管理或自动化任务部分。 最后,确保回答结构清晰,分点明确,引用标记正确,比如在提到调用Shell脚本时添加[^1],在跨平台部分引用相关资源如[^2]。同时,生成的相关问题要自然,帮助用户深入理解。</think>### TCL Shell (tclsh) 介绍及用途 #### 1. **TCL Shell (tclsh) 的定义** Tcl(Tool Command Language,工具命令语言)是一种动态脚本语言,而`tclsh`是Tcl语言的命令行解释器。它提供交互式环境或脚本执行能力,类似于Python的`python`或Shell的`bash`。用户可以直接输入Tcl命令并立即执行,也可运行预编写的脚本文件[^2]。 #### 2. **核心功能与特点** - **交互式编程**:支持逐行输入命令并即时反馈结果,适用于快速测试代码片段。 - **脚本执行**:通过`tclsh 脚本名.tcl`执行完整的Tcl脚本。 - **与其他语言/工具集成**:可调用外部命令(如Shell脚本)或嵌入到C/C++程序中[^1][^4]。 - **跨平台支持**:适用于Linux、Windows、macOS等系统。 #### 3. **典型应用场景** - **自动化任务**:批量文件处理、日志分析等。例如,结合Shell脚本实现复杂操作: ```tcl # 调用Shell脚本并获取输出 set result [exec bash /path/to/test.sh] puts $result ``` 引用示例中,`exec`命令用于执行外部脚本。 - **系统管理**:通过Tcl脚本管理进程或后台任务。例如,后台运行命令并处理输出: ```tcl set pid [exec command &] ``` 需结合事件循环或管道实现结果捕获。 - **测试工具开发**:Tcl的简洁语法使其适合编写测试框架(如EDA工具中的电路仿真控制)。 #### 4. **与其他Shell的区别** - **语法差异**:Tcl以命令为中心,结构类似Lisp,而Bash更侧重文件/进程操作。 - **扩展性**:Tcl可通过`Tk`库构建图形界面,或通过`Expect`实现自动化交互。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值