我在编译时在MYSYS2中用gcc设置了rpath,但是程序在运行时找不到它,这是为什么呢?

tsm1rwdh  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(195)

在我的工作目录中有 main.c 和一个名为 lib 的文件夹,其中有 libtest.dll
我使用
文件名为"文件名"。
编译,编译过程没有问题(没有警告和错误)。但是当我运行a.exe时,系统提醒
D:/MYSY 2/home/用户/代码/一个.exe:加载共享库时出错:libtest.dll:无法打开共享对象文件:没有这样的文件或目录
那么,为什么编译时可以找到这个库,而运行时却找不到呢?

ig9co6j1

ig9co6j11#

Windows上的共享库是.dll文件,可以通过查找与运行的.exe文件相同的文件夹来找到,或者,如果查找不起作用,可以通过查找PATH环境变量指定的位置来找到。
因此,最好的解决方案是将.dll文件复制到与.exe文件相同的位置。
为了分发应用程序,您可以使用copypedeps -rhttps://github.com/brechtsanders/pedeps复制.exe文件沿着任何依赖项.dll文件,以防您不确定需要哪些文件。

相关问题