我用Tcl/Tk的C编写了一个Windows程序来创建一个很好的GUI。我已经为依赖项安装了ActiveState ActiveTcl,一切都很好地编译和运行。编译要求我根据ActiveTcl提供的导入库进行链接。
既然我想分发这个程序,我必须选择如何处理对ActiveTcl的依赖。一种选择是要求在我的程序之前安装ActiveTcl,而另一种选择是只分发我的程序实际使用的ActiveTcl DLL。
如果我使用依赖沃克查看我的程序,我可以看到使用了三个ActiveTcl DLL。tcl86.dll,tk86.dll和zlib1.dll。所以我试着移动DLL的。
如果我将这些DLL移动到C:\Windows文件夹或程序的文件夹,程序将不再起作用。在移动DLL并在dependency中查看程序之后,我可以看到DLL在这些替代位置中被找到,但是程序拒绝启动。我连一个错误都没有。
你们知道为什么会这样吗?我的程序唯一运行的时间是如果DLL位于ActiveTcl (C:\Tcl\bin)的安装目录中。
发布于 2014-04-09 18:41:47
DDL对应该存在于同一文件夹中的其他文件具有依赖关系。
https://stackoverflow.com/questions/21066071
复制相似问题