2016-05-02 1 views
0

コードハント(https://www.codehunt.com/about.aspx)のようなゲームを作成しようとしています これはどのように動作しますか。プレーヤーは.cppファイルを編集できます。コード内を走っていましたが、コンパイル方法に問題があります。 I'am最新のG ++コンパイラを使用して、これは私がこのachiveしようとする方法です:私たちは.cppファイルの名前を取得し、このコード片はこれはtest.o を構築することになっているCode :: Blocksのg ++​​でコード内でコンパイルする

void Builder::build(const char* file){ 
std::string s = "g++ "; 
s += file; 
s += " -o test.o"; 
system(s.c_str()); 
} 

をちょうど今テストは、それがより複雑になるかもしれない、私はちょうど、コンパイラがコード内で動作するかどうかをテストしたかったが、私はこれを実行しようとすると、私は、このエラーメッセージが表示されます:mingwのため

c:/mingw/bin/../lib/gcc/mingw32/4.9.3/../../../libmingw32.a(main.o):(.text.startup+0xa7):undefined reference to '[email protected]' 
collect2.exe: error: ld returned 1 exit status 

PATHが設定されています正しく、私はチェックした。 私はWindows 8.1、g ++ 4.9.3、Code :: Blocksを使用しています。

+0

実行ファイルではなく*オブジェクト*ファイルのように、出力ファイルに '.o'というサフィックスを付けることをお忘れですか? –

+0

また、ユーザー定義のコードを実行するだけで、大きなセキュリティホールができますが、サターンVロケットを飛行させるには十分です。 –

答えて

1

Windowsの実行では通常、main関数では起動しませんが、Windows固有の引数をとるWinMain関数から開始されます。たとえば、詳細についてはthis WinMain referenceをご覧ください。

main関数で開始するように見えるプログラムは、main関数を呼び出すWinMain関数を含むプログラムにリンクされたオブジェクトファイルがあるためです。

0

OK私は馬鹿ですので、問題は私が主な機能を持つファイルを構築しようとしていたことでした。これは初めに意識的なデザインの選択でしたが、まあまあです。申し訳ありません。 私にそれを導いてくれたJoachim Pileborgに感謝します。

関連する問題