2014-10-03 186 views
1

我試圖編譯使用Codebloks每晚下面的代碼SVN 9916代碼塊編譯不能執行

#include "Main.h" 
#include <iostream> 

using namespace std; 

int main() { 

    cout << "Hello World!" << endl; 
    return 0; 
} 

從內部代碼塊運行可執行文件,按預期的方式返回Hello World!。但是,如果可執行文件從外部啓動,則會返回應用程序錯誤0xc000007b。這意味着系統類型(32位或64位)不適合,或者可執行文件被破壞。但我不明白爲什麼從Codeblocks執行編譯是好的。 可執行文件本身是32位(x86)並從32位或64位cmd運行它不會做出更改。

數據: Windows 7專業版64位 GNU GCC編譯

編輯:Workarround

靜態鏈接C++庫對可執行的作品。看起來,如果C++標準庫不可用,windows就無法執行它。

+2

什麼是「Main.h」? – PaulMcKenzie 2014-10-03 11:18:07

+2

您可能需要一個或多個gcc dll文件在您的路徑或可執行文件所在的目錄中。 [Dependency Walker](http://www.dependencywalker.com/)可以幫助您查看缺少的內容。 – 2014-10-03 11:18:36

+0

Main.h只是一個空白自動生成的標題 – Matze 2014-10-03 11:25:57

回答

1

靜態鏈接的C++默認圖書館工作。

只需將-static-libstdc++添加到您的鏈接語句

0

我會建議從statch重新設置您的編譯器,看看是否是造成問題,我會建議看this video它幾乎介紹瞭如何從步驟做1