我是一名Unix/Linux新手,他正在尝试运行一个由没有任何文档并且已经被删除的人编写的shell脚本。此脚本包含行:在Windows中的gcc无法编译为Unix/Linux编写的C程序
./search $opt1 $arg1 < $poly 2>&1 | tee $output
正试图获取文件$poly
和呼叫程序./search
和输出转移到$output
。
当我到了这条线,我给出的消息:./search: cannot execute binary file: Exec format error
search
是从脚本调用一个C程序,并在同一文件夹中的各种其他C程序做这个项目。脚本和C程序已经开发出来并且最初是在一个不再可用的Unix/Linux机器上执行的,所以我被要求尝试复活这个项目,但在Windows下使用NetBeans中的gcc
和cygwin
。
消息:./search: cannot execute binary file: Exec format error
最有可能与search
没有可执行文件有关。当我尝试建立的C程序我得到以下输出:
C:\cygwin64\bin\make.exe -f Makefile
gcc -ansi -g -c cbuild.c
gcc -ansi -g -c complex.c
gcc -ansi -g -c mylib.c
gcc -ansi -g -c poly.c
gcc -ansi -g -c real.c
gcc -ansi -g -c zero.c
gcc -lgmp -lm -lrt -o cbuild cbuild.o complex.o mylib.o poly.o real.o zero.o
real.o: In function `rabs':
/cygdrive/c/../progs/real.c:9: undefined reference to `__imp___gmpf_abs'
/cygdrive/c/../progs/real.c:9:(.text+0x1e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp___gmpf_abs'
real.o: In function `radd':
我认为R_X86_64_PC32
指的是我使用的环境。我在Windows 10
的64位版本cygwin
上使用了64位版本的Netbeans
和gcc 5.4.0
。
任何人都可以建议我必须解决这个问题,以便我可以建立C程序?
Cygwin的是没有Linux/Unix模拟器。 – Olaf
是否编译,链接并运行一个简单的“* hello,world *”(http://stackoverflow.com/documentation/c/213/hello-world/795/hello-world#t=201608131834051452644)? “ – alk
”*不提供运行选项*“错误是什么?通过执行'。/ myprogramname'来执行它......:-S – alk