【问题标题】:gcc library linking issue in Windows after cygwin installationcygwin安装后Windows中的gcc库链接问题
【发布时间】:2012-06-29 21:53:18
【问题描述】:
C:\slite\1.1>gcc -c ".\src\SDR.c" -o ".\obj\SDR.o" -I".\inc"  
C:\slite\1.1>gcc ".\obj\SDR.o" -o ".\exe\SDR.exe" -L".\lib" -lsres -lshis  
.\lib/sres.dll: file not recognized: File format not recognized  
collect2: ld returned 1 exit status

在 Windows 2003 中安装 cygwin 后,无法使用 gcc 编译 C 程序。
在安装cygwin之前,我能够编译成功。
我正在从命令提示符编译代码,而不是从 cygwin 终端。
使用的 gcc 来自 Dev-Cpp 发行版。 问题是因为 -L 指定的库目录和 -l 指定的各个库之间的目录分隔符('/'),在安装 cygwin 后被 gcc 使用?

如果我尝试在 cygwin 终端中编译,我会收到未知函数调用错误,尽管函数是在包含的头文件中定义的。

编辑:

C:\srmlite\x7.5.0.146-1600>where gcc
C:\Dev-Cpp\bin\gcc.exe

gcc 不是来自 cygwin。 我已经卸载了 cygwin 并删除了它的目录。我仍然看到这个问题。

【问题讨论】:

    标签: c compiler-errors cygwin


    【解决方案1】:

    看来Cygwin修改了默认环境,将自己添加到%PATH%,所以你实际上是在调用cygwin的gcc,检查一下。

    【讨论】:

    • 我已经使用 'where' 检查了哪个 gcc 正在使用。请参阅编辑。
    【解决方案2】:

    尝试将正确的 bin 目录添加到环境变量的路径中。 像这样:C:\soft\cygwin\bin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 2016-01-03
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多