我正在尝试使用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 for
all'。 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>管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]:离开目录`/ 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目录,它存在,我已多次检查过。
对这个问题的任何见解都会非常有用!
谢谢!
答案 0 :(得分:6)
在sim.tar发行版中仔细查看Makefiles后,我会说你的变量设置不正确。
在Makefile中尝试以下设置:
TKLIB="-L/opt/tcl/lib -ltk -ltcl"
TKINC="-I/opt/tcl/include"
根据您拥有的确切库,您可能需要添加一些版本号,例如-ltcl85左右,但不要先尝试。