red*_*d69 6 c windows gcc cygwin
GCC 4.9.2不创建可执行文件,无论a.out
或-o hello.exe
.添加-v
到编译行表示-o
切换到不存在的临时文件,例如:-o /tmp/ccr6nMlO.s
最近几个月在Windows XP和Windows 7上安装的Cygwin NT-6.1都无法生成可执行文件.我在一台完美运行的旧笔记本电脑上找到了Cygwin 1.7.3.
编译标志或其语法是否已更改?此命令无法生成可执行文件:
gcc hello.c -o hello.exe
Run Code Online (Sandbox Code Playgroud)
这是我的版本.我以为它来自Cygwin镜子.$ uname -a
给
CYGWIN_NT-6.1-WOW Gary-PC 1.7.35(0.287/5/3) 2015-03-04 12:07 i686
Run Code Online (Sandbox Code Playgroud)
这是一个编译示例:
$ gcc hello.c -o hello.exe
Run Code Online (Sandbox Code Playgroud)
echo $?
返回a 1
,没有评论.所以编译器失败了.
编译任何代码的所有尝试都无法在当前目录中生成任何内容,并且不会报告任何错误或警告.ctgcheck -c bash binutils bzip2 cygwin gcc-core gcc-g++ gzip m4 make unzip zip
表示一切都已安装:
Cygwin Package Information
Package Version Status
bash 4.3.33-1 OK
binutils 2.25-1 OK
bzip2 1.0.6-2 OK
cygwin 1.7.35-1 OK
gcc-core 4.9.2-3 OK
gcc-g++ 4.9.2-3 OK
gzip 1.6-1 OK
m4 1.4.17-1 OK
make 4.1-1 OK
unzip 6.0-14 OK
Run Code Online (Sandbox Code Playgroud)
编译时-v
给出了这个报告:
$ gcc hello.c -o hello.exe -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-cygwin/4.9.2/lto-wrapper.exe
Target: i686-pc-cygwin
Configured with: /cygdrive/i/szsz/tmpp/gcc/gcc-4.9.2-3.i686/src/gcc-4.9.2/configure --srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-4.9.2-3.i686/src/gcc-4.9.2 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --libdir=/usr/lib --datarootdir=/usr/share --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=i686-pc-cygwin --host=i686-pc-cygwin --target=i686-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-arch=i686 --with-tune=generic --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,java,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --disable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --enable-libada --enable-libjava --enable-libgcj-sublibs --disable-java-awt --disable-symvers --with-ecj-jar=/usr/share/java/ecj.jar --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id
Thread model: posix gcc version 4.9.2 (GCC)
COLLECT_GCC_OPTIONS='-o' 'hello.exe' '-v' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-pc-cygwin/4.9.2/cc1.exe -quiet -v -Dunix -idirafter /usr/lib/gcc/i686-pc-cygwin/4.9.2/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.9.2/../../../../i686-pc-cygwin/lib/../../include/w32api hello.c -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello -version -o /tmp/cc8W4cOy.s
Run Code Online (Sandbox Code Playgroud)
我还在Windows XP上安装了Cygwin来报告这个版本: CYGWIN_NT-5.1 lt-love6 1.7.35(0.287/5/3) 2015-03-04 12:07 i686 Cygwin
编译结果hello.c
是相同的.没有可执行文件,$?=1
表明编译失败.此外,没有报告错误或警告.使用-v
提供类似于上面的报告.
根据我的使用,Cygwin 终端中的一个简单的 GCC 命令如下
$ gcc filename.c
Run Code Online (Sandbox Code Playgroud)
生成输出文件“a”。您可以按如下方式运行它:
$ ./a
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。