在Cygwin中处理“C编译器无法创建可执行文件”

问题描述 投票:0回答:3

无论我尝试在 Cygwin 中编译什么,我都会得到以下输出:

正在检查 mingw32 环境...否
检查 EMX OS/2 环境...否
检查如何运行 C 预处理器... gcc -E
检查 gcc...gcc
检查 C 编译器 (gcc) 是否工作... 否
配置:错误:安装或配置问题:C 编译器无法创建
e 可执行文件。

日志文件的最后几行如下所示:

configure:2810:检查 EMX OS/2 环境
配置:2822:gcc -c conftest.c 1>&5
配置:在函数“main”中:
配置:2818:错误:“__EMX__”未声明(在此函数中首次使用)
配置:2818:错误:(每个未声明的标识符仅报告一次
配置:2818:错误:对于它出现的每个函数。)
配置:失败的程序是:
#第 2815 行“配置”
#include“confdefs.h”

int main() {
返回 __EMX__;
;返回0; }
配置:2838:检查如何运行 C 预处理器
配置:2859:gcc -E conftest.c >/dev/null 2>conftest.out
配置:2943:检查 gcc
配置:3056:检查C编译器(gcc)是否工作
配置:3072:gcc -o conftest conftest.c -llib 1>&5
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld:找不到
 -llib
Collect2: ld 返回 1 退出状态
配置:失败的程序是:

#第 3067 行“配置”
#include“confdefs.h”

主(){返回(0);}

这是一个全新的 Cygwin 安装,其中添加了 G++ 和一堆其他开发工具。知道我需要做什么才能让这件事发挥作用吗?

更新 0:Nick,您指向 http://www.geektimes.com/linux/troubleshooting/c-cant-create-executables.html 的链接已尝试过 - 不幸的是,此说明适用于 redhat,似乎不适用于到西格温。

c++ gcc g++ cygwin
3个回答
3
投票

您的配置错误。 通常

autoreconf -f
有帮助。如果没有,您需要检查失败的规则并修复它。


2
投票

“-llib”对我来说似乎有点不寻常,但我远不是专家。只是出于好奇是否安装了autoconf?在安装 autoconf 之前我遇到了一些类似的问题。配置脚本似乎错误地生成了“-llib”值,但仅根据发布的代码片段很难说出原因。


1
投票

当我遇到这个问题时,这是由 Cygwin 寻找“library.o”而不是“library.obj”或“library.so”而不是“library.dll”引起的链接错误。

© www.soinside.com 2019 - 2024. All rights reserved.