.tcl文件_oommf和tcl/tk版本对应的重要性

毕业论文终于写完了,但是半个月前用oommf看mumax3运行的数据文件时出现的问题还是得说一下。之前学长在的时候配了一台win10的服务器,里面装了mumax3和muview,但是没装oommf(或者说死活打不开)。由于我的数据文件比较大,用muview很卡,必须用oommf切片分析,所以重装oommf。

先看了一下服务器,学长已经装过ActiveTcl,包含了tcl/tk环境,版本8.6.6,直接从oommf官网找了这个tcl/tk版本支持的oommf,版本是12b2,64位的预编译版(zip压缩的)。预编译版好处是在windows里面不需要编译,只要tcl/tk版本对应则开箱即用。然而当我打开oommf时发现下面这种情况:

v2-867548037695210918a2426cbf07dbe5_b.jpg

What??? 对于这种情况,我的第一反应是检查一下环境,在解压的文件夹中使用命令

tclsh oommf.tcl +platform

v2-28601043b20fadb42c281d552966a987_b.jpg

得到的却是Anaconda里面的tcl/tk环境。

开始我以为用Anaconda中的环境也行,我用pimake命令重新编译了一下,发现问题依然存在,这里我也有些迷,记不清Anaconda到底能不能用。

后来我决定只用ActiveTcl中的环境编译和运行oommf,首先打开我的电脑->右键属性->高级系统设置->环境变量->系统变量,找到path,将ActiveTcl的环境变量放在Anaconda前,重启,这样+platform命令识别的就应该是ActiveTcl中的tcl/tk。执行

tclsh oommf.tcl pimake upgrade
tclsh oommf.tcl pimake distclean
tclsh oommf.tcl pimake

重新打开oommf,发现仍然是刚开始的错误。

这时我就比较崩溃了,感觉自己已经把Anaconda和ActiveTcl分开了,环境变量也没错,为什么会出现这种情况?难道只能重装ActiveTcl?然后我忽然发现,,,ActiveTcl是32位的,从官网可以很明显地看出32位的tcl/tk版本只能是8.5.x,我们现在是8.6.6。

v2-8d85670546c62761b95c82455a9d52f2_b.png

卸载,重装64位的ActiveTcl,版本8.6.8(官网这时只有这个版本了)。编译都懒得进行了,直接把oommf的压缩包再解压一下,双击打开里面oommf.tcl这个文件,OK。

总结:想偷懒就千万看好版本对应关系。

(个人原创,转载请注明源链接地址)

cc -o ../../bin/lsqfit main.o lsqfit_ls.o block_init.o line.o -L../../lib -ldblock -ldutil /home/ubuntu/software/tcl/tcl8.5.11/lib/libtcl8.5.so -lm -lc /usr/bin/ld: main.o: in function `main': main.c:(.text+0x239): undefined reference to `blk_open_file' /usr/bin/ld: main.c:(.text+0x499): undefined reference to `blk_open_file' /usr/bin/ld: main.c:(.text+0x5e3): undefined reference to `blk_open_file' /usr/bin/ld: main.c:(.text+0x8f9): undefined reference to `blk_open_file' /usr/bin/ld: ../../lib/libdblock.a(skip.o): in function `blk__skip': skip.c:(.text+0xed): undefined reference to `blk__getlines' /usr/bin/ld: skip.c:(.text+0x126): undefined reference to `blk__getlines' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_init_read': read.c:(.text+0x15): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_blk': read.c:(.text+0x6a): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_data': read.c:(.text+0xad): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk__read_data': read.c:(.text+0x119): undefined reference to `blk__getlines' /usr/bin/ld: read.c:(.text+0x1b2): undefined reference to `blk__getlines' /usr/bin/ld: read.c:(.text+0x1e5): undefined reference to `blk__getlines' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_check': read.c:(.text+0x398): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_read_blk_check': read.c:(.text+0x3d6): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk__read_check': read.c:(.text+0x49b): undefined reference to `blk__getlines' /usr/bin/ld: read.c:(.text+0x788): undefined reference to `blk__getlines' /usr/bin/ld: ../../lib/libdblock.a(read.o): in function `blk_print_env': read.c:(.text+0xbdf): undefined reference to `blk__getenv' /usr/bin/ld: ../../lib/libdblock.a(variables.o
06-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值