2010-11-27 15 views
3

srcディレクトリに.c anf .h拡張子(cmdline.c cmdline.h core.c core.hなど)を持つファイルはほとんどなく、拡張子のない "MakeFile"ファイルも1つあります。これらのソースファイルをWindows 7(64ビット)上のいくつかの実行可能ファイルにビルドする可能性はありますか?私はCまたはいくつかのsdksのためのコンパイラをダウンロードする必要があると思いますか?Cで書かれたソースファイルから実行可能ファイルをビルドするには?

+2

このコードはWindows用に開発されましたか? "make"ユーティリティは通常、Unixのものです。 – JOTN

+0

WindowsにはMSからのnmakeがあります。 'make'のコンセプトは、Windowsが完全に無視するにはあまりにも役に立ちます。 –

+0

'gcc'と一緒に' make'がWindowsを含む多くのOSに存在します。 – Kos

答えて

3

はい。

あなたがする必要がある:

  • ダウンロードし、あなたのPATHにコンパイラを追加するC/C++コンパイラ(私はTDragon's distribution of MinGWをお勧めします)、
  • をインストール(インストーラがあなたのためにほとんどの場合にそれを行うことができます) ; Makefileが常駐してmingw32-makeを呼び出しているフォルダに移動し、cmd.exe経由
  • 、あなたのパスが正しく設定されている場合、両方があなたのバージョン情報の半分画面分を与える必要があり、それはcmd.exeを開き、gcc -vmingw32-make -vを入力することで行うのを確認します。

これ以降は自動的にすべてが自動的にコンパイルされます。そうでない場合は、エラーを投稿してください。


更新:あなたはMSysパッケージを取得するためのすべての

まず、それが役に立つだろう。インストールすると、より新しいバージョンのmake(今からmingw32-makeの代わりにそれを使用します)。

バグについては、PATH変数が長すぎます。あなたはこのような何かをする必要があるでしょう:

  • オープンcmd
  • set PATH=c:/mingw32/bin;c:/msys/1.0/binを実行する前のように
  • (それは違う場合は、独自のインストールを反映するために、ここにパスを変更):プロジェクトのディレクトリに移動し、実行make。外部ライブラリを紛失していない場合は、すべてがスムーズになります。

BTW- MinGWまたはMSysをスペースのあるディレクトリにインストールしないでください。

+0

私はBoostを含む[this MinGW distribution](http://nuwen.net/mingw.html)も好きです。 – fredoverflow

+0

そのディストリビューションも有望ですが、私はTDragonのほうがOpenMPサポートとパッケージのGDBの方が好きです。しかし、私は確かにその2人の作家が力を合わせることを望む。 :) – Kos

+0

クイックレスポンスのおかげで、上記のすべてのことを行い、エラーが発生しました。C:\ src> mingw32-make rm -f *〜 process_begin:CreateProcess(NULL、rm -f *〜、...)が失敗しました。 make(e = 2):指定されたファイルが見つかりません。 mingw32-make:*** [クリーン]エラー2は、ソースファイルに何らかの誤ったインクルードまたはsmthがあることを意味しますか? – bruto

0

私はWindowsデベロッパーではありません。 まだ私の知る限りです。 Visual Studio(つまり2008年)はMakefileを読むことができます。 これを見てください。必要に応じて、このメイクファイルをフォーマットに変更してください。

プラットフォームに依存しない多くのオープンソース製品があります。それらは提供されたメイクファイルで両方のOSでコンパイルされます。

それとも他のウィンドウで動作しますが、それはGCCのコードは、Windowsに買って実際にある++ cygwinの "

開発Cを使用し、彼らは実行ファイルへのLinux(.SH)を変換するために使用される手順について熟知し、誰です?

0

I think i need to download compilers for C or some sdks right?

コンパイラは確かですが、必要なその他のライブラリはコード自体に完全に依存します。ビルドが成功するかどうかは、元のコードとメイクファイルの意図されたターゲットにも依存します。 makefileはGNU makefileかもしれませんが、Borland MakeやMS NMakeのような似ているが互換性のないmakeユーティリティもあります。単純なビルドの場合、メイクファイルの問題を完全に回避し、Visual C++ 2010 ExpressなどのIDEによって提供されるプロジェクト管理を使用することができます。

このコードが何であるか、それが何をして何を構築する必要があるのか​​わからない場合は、まったくビルドする危険があります。たぶん、元のソースへのリンクを投稿して、ビルド方法の具体的なアドバイスを得る必要があります。


[EDIT]

[OK]をは、今あなたが構築しようとしているコードを見て、それは非常に単純なビルドですので、あなたはGNU makeを使用しないようにしたい場合、あなたは可能性があり、単にsrcフォルダのすべての* .cファイルをIDEのプロジェクトに追加してビルドします。

しかし、深刻な問題が1つあり、BSDソケットAPIとLinuxシステムヘッダを使用しています。 WinSock(BSDソケットに非常によく似ています)のようなWindows APIにコードを移植するか、Cygwinの下でビルドする必要があります(いくつかのナットのためのスレッジハンマー)。ソートが必要な他のLinuxの依存関係があるかもしれませんが、詳細は見ていませんが、かなり単純です。それは、もしあなたがこのようなものをコンパイルすることに関する最初の手がかりを持っていなかったら、おそらくこれはあなたができることではないと言いましたか?

もちろん、コードをコンパイルするのは半分しか問題にならないかもしれません。もしLinux上で動作するように設計されていれば、Windows上で実行されないような実行時の依存関係が存在するかもしれません。再び私は詳細を見ていない。

また、コードを見て、私はいくつかの注意をお勧めします、これは最高の品質のコードではないかもしれません。それは不公平なものかもしれませんが、未知のものがあれば明らかな脆弱性と兆候が見えます。

+0

ああ私はこれを構築しようとしている:http://www.cs.uiowa.edu/~asignori/papers/building-an-open-source-meta-search-engine/helios-4.1g.tar。 bz2 – bruto

+0

なぜWindowsプラットフォームでビルドしようとしているのですか? – Tony

+0

@bruto:私はむしろ、コードが記述されているページへのリンクを投稿したいと思います。これは、tar-ballへの直接リンクではなく、ダウンロードすることができます。 http://www.cs.uiowa.edu/~asignori/papers/building-an-open-source-meta-search-engine/ – Clifford