在vs.net 2003中编译ns2(4):编译tclcl
2007-04-08 23:45
274 查看
1 编译tcl2c.exe
1) 创建tcl2c.exe工程,类型为命令行程序,选择空项目选项。
2) 在工程中添加以下文件:
D:/ns-allinone-2.31/tclcl-1.19/tcl2c++.c
3) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
4) 将中间目录改为:$(SolutionDir)/Debug/tcl2c。原因:个人喜爱。
5) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
6) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
7) 编译生成tcl2c.exe
2 编译wincl.dll
1) 创建wincl.dll工程,记住选上“导出符号”。
2) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
3) 将中间目录改为:$(SolutionDir)/Debug/wintcl。原因:个人喜爱。
4) 在“C/C++ -> 附加包含目录”中添加:
"D:/ns-allinone-2.31/tcl8.4.14/generic";
"D:/ns-allinone-2.31/tcl8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/generic";
"D:/ns-allinone-2.31/tk8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/xlib";
"D:/ns-allinone-2.31/otcl-1.13";
“.”;
“../winotcl”;
5) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
6) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
7) 在“链接器->输入->附加依赖项”中添加Ws2_32.lib。
8) 将tclcl-1.19目录下的所有文件添加到工程中。
9) 将tclcl-1.19/compat/下的两个文件添加到工程中。
10) 从工程中删除下述文件
tcl2c++.c
tclAppInit.cc
tkAppInit.cc
11) 打开工程中的头文件,添加
#include "wincl.h"
将“class”全部替换为“class WINCL_API”,用以导出类的定义。
12) 将config.h改名为wincl_config.h,避免在后面的编译中制造麻烦。
13) 在项目中搜索config.h,全部改为wincl_config.h。
14) 在项目中搜索tclcl-wincl_config.h,全部替换为tclcl-config.h
15) 打开wincl_config.h,注释掉以下行
#define H***E_INT64 1
#define H***E_SNPRINTF 1
16) 将tcl2c.exe复制到tclcl-1.19目录下,打开cmd.exe,转到tclcl-1.19目录,运行如下命令:
tcl2c et_tclobject tcl-object.tcl tcl-import.tcl tcl-http.tcl > embedded-tclobj.cc
此命令并生成一个embedded-tclobj.cc文件,将此文件添加到工程中。
17) 将wintcl.dll、wintk.dll、winotcl.dll设置为此项目的依赖项目。
18) 编译工程,生成wincl.dll
3 编译clsh.exe
1) 创建clsh.exe工程,类型为命令行程序,选择空项目选项。
2) 在工程中添加以下文件:
D:/ns-allinone-2.31/tclcl-1.19/tclAppInit.c
3) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
4) 将中间目录改为:$(SolutionDir)/Debug/otclsh。原因:个人喜爱。
5) 在“C/C++ -> 附加包含目录”中添加:
"D:/ns-allinone-2.31/tcl8.4.14/generic";
"D:/ns-allinone-2.31/tcl8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/generic";
"D:/ns-allinone-2.31/tk8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/xlib";
"D:/ns-allinone-2.31/otcl-1.13";
“../winotcl”;
“../wincl”;
6) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
7) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
8) 打开tclAppInit.c,找到第30行
extern int matherr();
将之改为:
int matherr(){return 0;}
9) 将wintcl.dll、wintk.dll、winotcl.dll、wincl.dll设置为此项目的依赖项目。
10) 编译运行
1) 创建tcl2c.exe工程,类型为命令行程序,选择空项目选项。
2) 在工程中添加以下文件:
D:/ns-allinone-2.31/tclcl-1.19/tcl2c++.c
3) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
4) 将中间目录改为:$(SolutionDir)/Debug/tcl2c。原因:个人喜爱。
5) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
6) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
7) 编译生成tcl2c.exe
2 编译wincl.dll
1) 创建wincl.dll工程,记住选上“导出符号”。
2) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
3) 将中间目录改为:$(SolutionDir)/Debug/wintcl。原因:个人喜爱。
4) 在“C/C++ -> 附加包含目录”中添加:
"D:/ns-allinone-2.31/tcl8.4.14/generic";
"D:/ns-allinone-2.31/tcl8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/generic";
"D:/ns-allinone-2.31/tk8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/xlib";
"D:/ns-allinone-2.31/otcl-1.13";
“.”;
“../winotcl”;
5) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
6) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
7) 在“链接器->输入->附加依赖项”中添加Ws2_32.lib。
8) 将tclcl-1.19目录下的所有文件添加到工程中。
9) 将tclcl-1.19/compat/下的两个文件添加到工程中。
10) 从工程中删除下述文件
tcl2c++.c
tclAppInit.cc
tkAppInit.cc
11) 打开工程中的头文件,添加
#include "wincl.h"
将“class”全部替换为“class WINCL_API”,用以导出类的定义。
12) 将config.h改名为wincl_config.h,避免在后面的编译中制造麻烦。
13) 在项目中搜索config.h,全部改为wincl_config.h。
14) 在项目中搜索tclcl-wincl_config.h,全部替换为tclcl-config.h
15) 打开wincl_config.h,注释掉以下行
#define H***E_INT64 1
#define H***E_SNPRINTF 1
16) 将tcl2c.exe复制到tclcl-1.19目录下,打开cmd.exe,转到tclcl-1.19目录,运行如下命令:
tcl2c et_tclobject tcl-object.tcl tcl-import.tcl tcl-http.tcl > embedded-tclobj.cc
此命令并生成一个embedded-tclobj.cc文件,将此文件添加到工程中。
17) 将wintcl.dll、wintk.dll、winotcl.dll设置为此项目的依赖项目。
18) 编译工程,生成wincl.dll
3 编译clsh.exe
1) 创建clsh.exe工程,类型为命令行程序,选择空项目选项。
2) 在工程中添加以下文件:
D:/ns-allinone-2.31/tclcl-1.19/tclAppInit.c
3) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
4) 将中间目录改为:$(SolutionDir)/Debug/otclsh。原因:个人喜爱。
5) 在“C/C++ -> 附加包含目录”中添加:
"D:/ns-allinone-2.31/tcl8.4.14/generic";
"D:/ns-allinone-2.31/tcl8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/generic";
"D:/ns-allinone-2.31/tk8.4.14/win";
"D:/ns-allinone-2.31/tk8.4.14/xlib";
"D:/ns-allinone-2.31/otcl-1.13";
“../winotcl”;
“../wincl”;
6) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
7) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
8) 打开tclAppInit.c,找到第30行
extern int matherr();
将之改为:
int matherr(){return 0;}
9) 将wintcl.dll、wintk.dll、winotcl.dll、wincl.dll设置为此项目的依赖项目。
10) 编译运行
相关文章推荐
- 在vs.net 2003中编译ns2(7):编译bluehoc
- 在vs.net 2003中编译ns2(1):编译tcl
- 在vs.net 2003中编译ns2(5):编译ns2
- 在vs.net 2003中编译ns2(2):编译tk
- 在vs.net 2003中编译ns2(3):编译otcl
- 在vs.net 2003中编译ns2(6):编译nam
- 很喜欢VS.NET 2003对条件编译的代码提示
- VS.NET 2003编译DirectShow的问题
- vs.net 2003 中 编译运行directx sample项目
- 很喜欢VS.NET 2003对条件编译的代码提示
- Vs.net 2003调用Matlab7编译的COM组件的问题与讨论
- vs.net 2003 和2005中邮件发送比较
- VS.net 2003快捷键一览表
- VS.NET 2003 控件命名规范
- VS.NET2003多项目解决方案的一个BUG
- 网站开发中/Web 应用程序中 在VS.NET 2003 中打包部署水晶报表
- VS.net 2003的内存泄漏检测功能
- VS.net编译错误,无任何出错提示?
- 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现
- 在VS.NET 2003中使用.ashx进图片及文件的传送和读取