2

我正在尝试使用mingw和msys在Windows上为Y86代码(http://csapp.cs.cmu.edu/public/sim.tar)编译一个模拟器,模拟器使用Tcl和Tk作为它拥有的GUI,所以我首先尝试下载用于构建 Tcl 和 Tk 所需的包含和库,但没有成功,因此我下载了源代码并将它们构建在 msys (http://wiki.tcl.tk/14828) 中。

我遇到的问题是我在运行make文件时不断收到同样的错误,

chrismeyer@MEYER-C /src/sim
$ make
(cd misc; make all) make[1]: 进入目录/src/sim/misc' make[1]: Nothing to be done forall'。make[1]: 离开目录/src/sim/misc' (cd pipe; make all GUIMODE=-DHAS_GUI TKLIBS="-l /opt/tcl/lib" TKINC="-I /opt/tcl/include") make[1]: Entering directory/src/sim/pipe' 构建 PIPE 的 pipe-std.hcl 版本 ../misc/hcl2c -n pipe-std.hcl < pipe-std.hcl > pipe-std.c gcc -Wall -O2 -I /opt/tcl/include -I../misc -DHAS_GUI -o psim psim.c pipe-std.c \ ../misc/isa.c -l /opt/tcl/lib -lm c:\minGW\bin..\lib\gcc\mingw32\3.4.5........\mingw32\bin\ld.exe: 找不到-lC:/msys/1.0/opt/tcl/lib collect2: ld 返回 1 退出状态 make[1]: * [psim] 错误 1 ​​make[1]: Leaving directory `/src/sim/pipe'

对不起,错误的格式,它有点混乱。主要问题是这条线

C:\minGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lC:/msys/1.0/opt/tcl/lib

我不确定为什么gcc找不到lib目录,它存在,我检查了很多次。

对此问题的任何见解都会非常有帮助!

谢谢!

4

1 回答 1

6

在简要查看 sim.tar 发行版中的 Makefile 后,我会说您的变量设置不正确。

在 Makefile 中尝试以下设置:

TKLIB="-L/opt/tcl/lib -ltk -ltcl"
TKINC="-I/opt/tcl/include"

根据您拥有的确切库,您可能需要添加一些版本号,例如 -ltcl85 左右,但不要先尝试。

于 2011-03-10T20:08:58.263 回答