在我的工作目录中有 main.c 和一个名为 lib 的文件夹,其中有 libtest.dll。我使用文件名为"文件名"。编译,编译过程没有问题(没有警告和错误)。但是当我运行a.exe时,系统提醒D:/MYSY 2/home/用户/代码/一个.exe:加载共享库时出错:libtest.dll:无法打开共享对象文件:没有这样的文件或目录那么,为什么编译时可以找到这个库,而运行时却找不到呢?
ig9co6j11#
Windows上的共享库是.dll文件,可以通过查找与运行的.exe文件相同的文件夹来找到,或者,如果查找不起作用,可以通过查找PATH环境变量指定的位置来找到。因此,最好的解决方案是将.dll文件复制到与.exe文件相同的位置。为了分发应用程序,您可以使用copypedeps -r从https://github.com/brechtsanders/pedeps复制.exe文件沿着任何依赖项.dll文件,以防您不确定需要哪些文件。
.dll
.exe
PATH
copypedeps -r
1条答案
按热度按时间ig9co6j11#
Windows上的共享库是
.dll
文件,可以通过查找与运行的.exe
文件相同的文件夹来找到,或者,如果查找不起作用,可以通过查找PATH
环境变量指定的位置来找到。因此,最好的解决方案是将
.dll
文件复制到与.exe
文件相同的位置。为了分发应用程序,您可以使用
copypedeps -r
从https://github.com/brechtsanders/pedeps复制.exe文件沿着任何依赖项.dll
文件,以防您不确定需要哪些文件。