第一步:编写一个.c文件,例如simple.c
              /**simple.c**/
              #include "simple.h"
              char* _fun()            //该函数在导出后可以在TCL脚本中当做命令使用
              {
                       return "test";
              }

编写一个 .h 文件 
              /** simple.h **/
              char* _fun() ;             //头文件的条件编译预处理我在这里都不写了,只简单的声明一个函数

第二步:编写一个.i文件(.i文件即时一个接口文件,swig工具通过该文件生成一个可以导出命令的 .c 文件)
              如果这个文件 叫 simple.i, 那么swig 生成的那个文件就叫做 simple_wrap.c
              /** simple.i **/
             %module simple
              %{
                       #include "simple.h"
               %}
               void _fun();       //在 .i 文件中指明要导出的函数(因为.c 文件中可能存在不止一个函数,导出我们想要的)
               
第三步:  使用swig工具
               swig  -tcl   simple.i

第四步: 编译.c文件,生成共享库文件
              gcc -fpic -c simple.c simple_wrap.c
              gcc -shared simple.o simple_wrap.o -o simple.so

第五步:使用
             tclsh       //进入tcl环境
             load   simple.so     //加载共享库到当前tcl环境
             puts [_fun]           //使用自定义的命令_fun, 这条命令将输出 “hello"

需要注意的地方:
       1、在编译的时候一定要连同自己写那个 .c 文件一起编译,链接时也同时链接进入。不然会在 load 的时候出现找不到的命令错误。
       2、每个用户的TCL安装路径可能不同,如果编译器不能自动找到该路径,需要手动指定 tcl的 include路径和 lib 路径。

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>

阅读(321) | 评论(0) | 转发(0) |

0

上一篇:没有了

下一篇:Linux Shell之常用快捷键

相关热门文章
  • 连接你我的线,最终汇成一个圆...
  • TCP/IP源码学习(54)——TCP的...
  • 想自学.Net哪里资源比较好?当...
  • 不需要“脚踏”实地,也能仰望...
  • 喜欢坐在她自行车后面望着西下...
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • 什么是shell
  • linux socket的bug??
  • linux的线程是否受到了保护?...
  • linux inode中磁盘地址列表有...
  • LNMP 老是会出现502?
  • suse 运用一个shell获取本机和...
  • 虚拟机 unix 配置ip
  • hp-un 主机新系统读不到磁盘阵...
给主人留下些什么吧!~~
评论热议

TCL/TK 学习笔记 之 用C定义自己的TCL命令相关推荐

  1. tcl/tk学习笔记《二》 tcl/tk概览二

    (6) 控制结构(粗略看一下)   http://www.tcl.tk/man/tcl8.6/TclLib/NRE.htm#M5           tcl的控制语言结构,如下看一下while循环   ...

  2. 运动控制学习 学习笔记(八)——定义和评价学习

    运动控制学习 学习笔记(八)--定义和评价学习 目标 (1)能够区分Performance(表现)与Learning(学习) (2)掌握"出现"了学习时,典型的六种Performa ...

  3. nginx学习笔记-01nginx入门,环境搭建,常见命令

    nginx学习笔记-01nginx入门,环境搭建,常见命令 文章目录 nginx学习笔记-01nginx入门,环境搭建,常见命令 1.nginx的基本概念 2.nginx的安装,常用命令和配置文件 3 ...

  4. vue学习笔记(四)- cmd无法识别vue命令解决方法

    vue学习笔记(四)- cmd无法识别vue命令解决方法 参考文章: (1)vue学习笔记(四)- cmd无法识别vue命令解决方法 (2)https://www.cnblogs.com/suRimn ...

  5. MongoDB学习笔记(3)- Mongo Shell 常用查询命令

    MongoDB学习笔记(3)- Mongo Shell 常用查询命令 本文所使用的MongoDB版本为 4.0.10 > db.version(); 4.0.10 一.find 命令进行简查询 ...

  6. 《C++Primer》第九章-顺序容器-学习笔记(1)-顺序容器定义与操作

    <C++Primer>第九章-顺序容器-学习笔记(1) 文章目录 <C++Primer>第九章-顺序容器-学习笔记(1) 摘要 顺序容器的定义 容器元素的初始化 将一个容器初始 ...

  7. mysql的sqlyog学习笔记(查询部分)(代码用命令行显示 )

    索引 语言 查询 基础查询 select 查询列表 from 表名; 查询函数(调用函数,获取返回值) 起别名 +的作用 distinct的使用(去重) 查看表的结构 条件查询 按关系表达式筛选 按逻 ...

  8. webpack学习笔记(二):认识配置和命令执行

    在上一篇webpack学习笔记中,直接在命令行中使用npx webpack对项目进行打包时所使用的配置都是默认的,入口文件默认是src目录下的index.js文件,输出文件默认是dist文件夹下的ma ...

  9. Scala2.11.7学习笔记(二)函数定义

    鲁春利的工作笔记,好记性不让烂笔头 函数定义 def 函数名(参数列表) : 返回类型 = {函数体} 说明: 返回类型默认为空(Unit,类似于Java的void): 函数体中默认最后一行为该函数的 ...

最新文章

  1. HTTP POST慢速DOS攻击初探
  2. mysql json 函数_MYSQL 开发设计表是硬邦邦的VARHCAR 还是JSON TYPE 来处理数据更香
  3. java ExecutorService
  4. 7能看出圆的周长吗_分手后真的能看出一个人的人品吗
  5. UDP如何实现可靠传输
  6. Codeforces Round #360 E
  7. Boost:宏BOOST_TEST_EQ的测试
  8. POJ 1741tree-点分治入门
  9. 《算法竞赛进阶指南》0.4二分
  10. python闭包函数的必要条件_Python 函数 functions、闭包 closure
  11. Oracle的SQL语法提示30例,INDEX_JOIN,ORDERED,USE_NL,LEADING
  12. 在 RAID 磁盘上面架构 LVM 系统
  13. 各种常用STL容器选择 需求分析笔记
  14. matlab2008 软件下载及安装教程
  15. “鬼城”郑州郑东新区蝶变记,助力中部崛起
  16. 商业智能的研究,主要集中在哪三个方面?
  17. Java 数字转汉字
  18. 牛顿下降法和梯度下降法(最速下降法)的速度的比较
  19. percona-tool文档说明(4)- 监控类
  20. Matlab弹簧质量阻尼系统建模仿真

热门文章

  1. 在IE中打开或下载文件
  2. xiunobbs 4 mysql_轻论坛程序 - Xiuno BBS 4.0
  3. html和php网站哪个好,HTML和PHP网站设计实例
  4. 1.19(Cake Baking)
  5. C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)
  6. 投影仪应该怎么选择?数码粉总结目前最好的家用投影仪
  7. 微软 Office 全家桶被 GPT-4 革新:Word 一键变成 PPT,打工人的春天来了!
  8. python实现百度语音之语音识别
  9. Edge浏览器越来越难用了?又惹“众怒”!
  10. 华为什么时候能升android10,华为手机什么时候升级安卓Q 华为首批适配Android10机型列表...