gpt4 book ai didi

c - cygwin 中的 gcc 编译器无法正确执行(放弃?)

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:49 30 4
gpt4 key购买 nike

cygwin 中的 gcc 编译器无法从除/bin 之外的任何文件夹中正确执行(放弃?)。例如,尝试从/bin 编译我的代码是可行的,但是从/bin/myprogram 使用 verbose 选项我从编译器得到以下消息:

gcc version 4.5.3 (GCC)
COLLECT_GCC_OPTIONS='-O' '-ansi' '-v' '-c' '-mtune=generic' '-march=i686'
/usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe -quiet -v -D__CYGWIN32__ -D__CYGWIN__ -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/lib/../../include/w32api sb.c -quiet -dumpbase sb.c -mtune=generic -march=i686 -ansi -auxbase sb -O -ansi -version -o /tmp/ccyhmnJp.s
Makefile:101: recipe for target `sb.o' failed
make: *** [sb.o] Error 1

其他人也报告过类似的问题:

http://cygwin.com/ml/cygwin/2010-01/msg00939.html

解决方案似乎是修改路径,尽管“从路径中删除 X”听起来像是一个临时(而且奇怪)的解决方法,而不是永久解决方案,而且我不知道要删除什么。无论我从/bin 还是从/bin/myprogram (我想在其中编译)运行 cygcheck。输出如下。

来自/bin:

$ cygcheck /usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe
C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\cc1.exe
C:\cygwin\bin\cygcloog-0.dll
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\KERNEL32.dll
C:\WINDOWS\system32\ntdll.dll
C:\cygwin\bin\cyggmp-10.dll
C:\cygwin\bin\cygppl_c-4.dll
C:\cygwin\bin\cygppl-9.dll
C:\cygwin\bin\cyggcc_s-1.dll
C:\cygwin\bin\cygstdc++-6.dll
C:\cygwin\bin\cyggmpxx-4.dll
C:\cygwin\bin\cygpwl-5.dll
C:\cygwin\bin\cyggmp-3.dll
C:\cygwin\bin\cygiconv-2.dll
C:\cygwin\bin\cygintl-8.dll
C:\cygwin\bin\cygmpc-1.dll
C:\cygwin\bin\cygmpfr-1.dll
C:\cygwin\bin\cygmpfr-4.dll
C:\cygwin\bin\cygppl_c-2.dll
C:\cygwin\bin\cygppl-7.dll
C:\cygwin\bin\cygz.dll

来自/bin/myprogram:

$ cygcheck /usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1.exe
C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\cc1.exe
C:\cygwin\bin\cygcloog-0.dll
C:\cygwin\usr\local\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
C:\WINDOWS\system32\KERNEL32.dll
C:\WINDOWS\system32\ntdll.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\Secur32.dll
C:\cygwin\bin\cyggmp-10.dll
C:\cygwin\bin\cygppl_c-4.dll
C:\cygwin\bin\cygppl-9.dll
C:\cygwin\bin\cyggcc_s-1.dll
C:\cygwin\bin\cygstdc++-6.dll
C:\cygwin\bin\cyggmpxx-4.dll
C:\cygwin\bin\cygpwl-5.dll
C:\cygwin\bin\cyggmp-3.dll
C:\cygwin\bin\cygiconv-2.dll
C:\cygwin\bin\cygintl-8.dll
C:\cygwin\bin\cygmpc-1.dll
C:\cygwin\bin\cygmpfr-1.dll
C:\cygwin\bin\cygmpfr-4.dll
C:\cygwin\bin\cygppl_c-2.dll
C:\cygwin\bin\cygppl-7.dll
C:\cygwin\usr\local\bin\cygz.dll

有一些明显的差异,但我不确定它们是什么意思。

我系统上的路径返回:

$ $PATH
-bash: /usr/local/bin:/usr/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS: /cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/ProgramFiles/ImageMagick-6.8.6-Q16 :/cygdrive/c/Ruby193/bin:/cygdrive/c/Program: No such file or directory

问题是,我现在该怎么办?如果答案是更改路径变量,应该删除什么?路径变量是存储在 bash 资源文件之一中还是必须从命令行进行更改?非常感谢!

最佳答案

您有多种选择。问题是错误的/usr/local/bin/cygz.dll

要么删除你的流氓/usr/local/bin/cygz.dll(首选),或修复你的路径

$ export PATH=/usr/bin:/usr/local/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS

解释:

在 Windows 上,库搜索路径在 $PATH 之前有 .。因此,当您在 /bin 中时,将找到正确的 cygz.dll。否则将首先找到您路径中损坏的那个。

关于c - cygwin 中的 gcc 编译器无法正确执行(放弃?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17573717/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com