cygwin - 无法执行二进制文件

FHr*_*FHr 6 cygwin variable-assignment

我试图从我的c ++代码中运行这两个.data文件.我已经提供了所有文件,并且只是为程序实现了一些函数(一切都应该能够编译运行make命令).

我曾经运行MAC并且刚刚开始使用Windows(win 7)因为工作给了我一台免费的笔记本电脑.无论如何......我安装了cygwin,将gcc-c ++编译器,gdb和make包添加到我的cygwin中.但是当我运行命令时,./file ./data它会出现:

bash: ./file: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)

是否有某个包或我想安装的东西?请注意,./ data是保存我的两个.data文件的文件夹,file1.datafile2.data

由"编译"

g++ -Wall -Werror -02 -c file.cpp
g++ -Wall -Werror -02 -c file-test.cpp
g++ -Wall -Werror -02 -o file file.o file-test.o
Run Code Online (Sandbox Code Playgroud)

Mic*_*lon 11

首先使用该file命令查看您拥有的二进制文件类型:

file ./file
Run Code Online (Sandbox Code Playgroud)

如果它不是可执行文件,那就是一个问题.如果它是ELF可执行文件,那么它可能是在Linux上运行,而不是在Windows上运行.例如,将输出与此命令进行比较:

file /bin/bash
Run Code Online (Sandbox Code Playgroud)

哪个应该告诉你:

/ bin/bash:PE32可执行文件(控制台)Intel 80386(剥离到外部PDB),用于MS Windows

现在尝试这个命令:

file /cygdrive/c/windows/write.exe
Run Code Online (Sandbox Code Playgroud)

其中说:/cygdrive/c/windows/write.exe:PE32 +可执行文件(GUI)x86-64,用于MS Windows

我在64位Windows 7安装上运行它,这就是为什么它说x86-64.虽然这是一个完全与cygwin无关的Windows GUI应用程序,但我仍然可以通过命令运行它:

/cygdrive/c/windows/write
Run Code Online (Sandbox Code Playgroud)

你真的没有解释你如何得到这个二进制文件命名./file.它是否可能是编译的目标文件,您还没有链接到可执行文件?如果您有Makefile,为什么不发布其内容?