2011-08-07 193 views
4

我想從我的C++代碼中運行這兩個.data文件以供我分配。我已經提供了所有的文件,只是爲了實現這個程序的一些功能(一切都應該能夠編譯運行make命令)。cygwin - 無法執行二進制文件

我曾經運行一個MAC,並且只是開始使用Windows(win 7),因爲工作給了我一臺免費的筆記本電腦。無論如何...我安裝了cygwin,添加了gcc-C++編譯器,gdb,並將包安裝到了我的cygwin中。但是,當我運行命令./file ./data談到了:

bash: ./file: cannot execute binary file 

是有一定的包什麼的,我想安裝?請注意,./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 
+0

你chmod它嗎?首先嚐試'chmod + x。/ file'。我只是安裝Ubuntu或其他東西,並在那裏開發。 Cygwin並不完美,你會很快遇到很多問題。 – tjameson

+0

不需要安裝Ubuntu,你可以運行一個虛擬機。 – crowne

+0

./file假定該文件位於當前工作目錄中...確認是否是這種情況。 – crowne

回答

9

開始使用file命令,看看你有什麼類型的二進制文件的編譯:

file ./file 

如果不是可執行文件,這是一個問題,如果它是一個ELF可執行則可能是爲了不能在Windows上運行Linux,比如比較輸出用這個命令:。

file /bin/bash 

這應該告訴你:

/斌/慶典:PE32可執行文件(控制檯)英特爾80386(剝去外部PDB),用於MS Windows

現在試試這個命令:

file /cygdrive/c/windows/write.exe 

它說以下內容: /cygdrive/c/windows/write.exe:PE32 +可執行文件(GUI)的x86-64,支持MS Windows

我在64位Windows 7安裝中運行了這個,這就是爲什麼它說x86-64。雖然這是一個Windows GUI應用程序完全無關的cygwin的,我仍然可以通過在命令運行它:

/cygdrive/c/windows/write 

你真的沒有解釋如何得到一個名爲./file這個二進制文件。它可能是一個編譯目標文件,你還沒有鏈接到一個可執行文件?如果你有一個Makefile,爲什麼不發佈它的內容?

+0

對不起忘了張貼內容,編輯我的第一篇文章 – FHr

+0

你確定是-02而不是-O2。如果是這樣,請將其更改爲字母O並再試一次。 –

相關問題