我在运行MinGW一段时间后已经安装了Cygwin。但是当我尝试编译控制台时,我发现:
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
这是什么意思?
答案 0 :(得分:9)
我有同样的问题,我找到了解决方案。
根据Cygwin的常见问题解答
问:为什么C:\ cygwin \ usr \ bin在Windows中不可见?
答:因为它确实不存在。在cygwin中,/ usr / bin只是指向/ bin的链接。
所以试图添加" C:\ cygwin \ usr \ bin" PATH将是徒劳的。
添加" C:\ cygwin64 \ bin"改为PATH。希望这会有所帮助:)
答案 1 :(得分:6)
您错过了一个库,请运行cygcheck /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe
或ldd /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/cc1.exe
以查看缺少的库。
答案 2 :(得分:1)
(我首先要在评论中提问,但我还没有足够的声誉。)
您的cc1
无法加载启动所需的某些DLL。查看Cygwin源代码,它可以是LD_PRELOAD
中指定的库,也可以是 - 更可能是可执行文件所依赖的库。错误消息中的?
似乎是find_first_notloaded_dll
(hookapi.cc
)的默认返回值,以防该函数无法确定缺少哪个库。
要诊断问题,我建议检查您的PATH
变量(甚至清除任何非Cygwin路径并再次尝试编译)和/或使用Dependency Walker查找丢失的DLL(从Cygwin shell开始,所以它可以看到相同的PATH
)。 ldd
(包括在Cygwin中)也可能提供一些线索,但我不会赌它。
可能需要彻底重新安装Cygwin才能解决问题。
答案 3 :(得分:1)
最有可能的是,你只是在PATH变量中缺少/ usr / bin。 添加'导出PATH = / usr / bin:$ PATH'你的.bashrc文件将解决问题。
答案 4 :(得分:1)
添加一些背景信息。我在构建自己的程序并将其与graphviz cgraph.dll链接时遇到了同样的问题。事实证明这与windows搜索DLL的位置有关(请参阅此处:https://msdn.microsoft.com/en-us/library/7d83bc18.aspx)因此,将缺少的库的路径添加到PATH应该可以解决问题。
令人遗憾的是,该消息并未包含库的名称。幸运的是,cmd.exe会给你这个名字(毕竟它对某些东西有好处);
答案 5 :(得分:0)
您是否包含lib目录的路径? 看起来你不是
我对Cygwin不太熟悉,我主要使用MinGW,但我认为错误信息不言而喻
答案 6 :(得分:0)
我在执行由scilab2C
生成的Scilab
文件时,也在Windows机器上出现此错误,即工具箱为Windows 32 bit
对于C:\cygwin\usr\i686-pc-cygwin\bin
添加环境变量路径如下:
var
希望这样可以解决您的问题。
答案 7 :(得分:0)
在尝试使用make编译软件包时遇到了这个问题,它想要一些刚与make一起安装的cygguile dll文件。
我的解决方案是,我不仅将cygwin64目录迁移到驱动器上,因为扇区大小由于某种原因不匹配,即使驱动程序都在2TB以下并且应该使用512字节的扇区大小也是如此。所以我不得不安装一个新系统并将文件移到那里,可能对它们有奇怪的权限。
由于在ConEmu中使用Windows 10 1903构建的最近输入问题,还不得不在2020年1月末对cygwin1.dll进行了修补,但是在此工作中它又做了一次,因此似乎不是问题。
通过删除整个目录来重新安装cygwin,首先获得它的所有权..,现在似乎可以正常工作...