我有一个使用Cygwin使用GCC编译的C程序,我希望从Windows 7中的python程序运行。我得到了使用子进程模块,但在加载共享库时遇到“错误... “而且没有其他信息。
谷歌搜索导致了以下两个问题;一个没有答案,一个没有接受的答案(一读时)没有完全解释如何解决它,以及一个承诺从近两年前完全解决的评论。
error while loading shared libraries: ?: cannot open shared object file: No such file or directory
我实际上修复了我的问题,但我想在此处记录,以防其他人遇到同样的问题。
答案 0 :(得分:1)
第二个问题的接受answer是正确的(至少在我的情况下) - 这与工作目录的位置以及它是否包含cygwin dll有关。
我从我的python程序的工作目录中调用了C:\\cygwin\\bin\\bash.exe
,这意味着bash.exe正在寻找python工作目录中所需的库,这些库位于C:\ cygwin \ bin中。
由于我在python中使用Popen,如果我在Popen调用中包含参数cwd="C:\\cygwin\\bin\\"
,它会启动bash.exe,当前工作目录设置为cygwin \ bin,一切正常。
修改强> 或者,将相关的dll复制到python程序的工作目录将具有相同的效果。但是,复制cygwin1.dll不起作用(至少对我而言),还有很多其他的cygwin dll。如果你可以找出你需要的那些并且只是复制它们(或复制它们),那么这也有效。