2011-07-07 11 views
2

私はしばらくVS2008/2010を使っていましたが、C/C++開発(主にC)用にEclipse Helionsを使用する方法を学びます。Eclipse C/C++質問のいくつか

私はライブラリについて混乱していますが、それは含まれています。

1)どのように正しくwinsock2.hを組み込みますか?私はこれを試しました:

#ifndef CONFIG_H_ 
#define CONFIG_H_ 


/* Windows-Build */ 
#if defined(WIN32) || defined(_WIN32) 
#include <winsock2.h> 
#endif 

SOCKET sock; 

#endif /* CONFIG_H_ */ 

しかし、コンパイラはSOCKETを認識しません。 Winsock2のフルパスをどこかに手動で追加する必要がありますか?

2)ws2_32.libはどうなりますか?あなたはEclipseにそれをどこに入れますか?パスを追加する必要がありますか?

3)VSを使っていると、メイクファイルが新しくなりました。どのようにカスタムメイクファイルをインクルードするのですか? makefileで始めるのに良いガイドがありますか?

4)VSのようなインテリセンスはありますか?

これは私が今理解できるものです。 ありがとう!

EDIT:最初の答えを受けて :それはコンパイラのよう

Building target: Filesharing_core.dll 
Invoking: Cygwin C Linker 
gcc -L"C:\cygwin\lib\w32api" -shared -o"Filesharing_core.dll" ./src/test.o -llibws2_32.a 
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -llibws2_32.a 
collect2: ld returned 1 exit status 
make: *** [Filesharing_core.dll] Error 1 
+0

どのツールチェーン(MinGW、Cygwin、またはVisual Studio)を使用していますか?メークファイルを使用する予定がある場合は、MinGWまたはCygwinが必要です。プロジェクトのプロパティで 'C/C++ General> Paths and Symbols'を見てください。 –

+0

私はCygwin Cコンパイラを使用しています – KaiserJohaan

答えて

2

まず第一に、cygwinのは、通常、GCCを使用します。これは、VSコンパイラとエディタで見つけることができる特別なウィンドウのサポートがないことを意味します。あなたの手を汚す準備をしてください。

私のCDTバージョンは少し古く、私はCygwinをインストールしていないので、以下のいくつかのものは正確ではないかもしれません。また、私が言及するすべてのコンパイラオプションは、gcc manualに記載されています。あなたのサンプルで

1)、誰も(私はGCCはあなたのためにそれを行うために起こっているとは思いませんが、ご確認ください)WIN32または_WIN32を定義されていません。これを修正するには、正しいマクロを定義するためのwindows.hヘッダーを含める必要があります。また、-Dコンパイラスイッチを使用することもできます(メイクファイルまたはEclipseメニューで設定可能)。

定義を修正した後でインクルードエラーが発生した場合は、ウィンドウヘッダーがC:\cygwin\usr\include\w32apiフォルダにあると考えられます。インクルードパスに追加するには、プロジェクトのプロパティを開き、C/C++ General > Paths and Symbolsに移動します。 IncludesタブのGNU Cグループにパスを追加します。プロジェクトをどのように構成したかによって、これはすでに完了している可能性があります。

独自のmakefileでビルドしている場合でも、インデクサーがこれらのヘッダーを見つけて解析できるため、前の手順を実行する必要があります。コンパイラにインクルードフォルダについて通知するには、-Iスイッチを使用します。

2)私はws2_32.libがwinsock2のlibファイルだと推測します。このような場合は、誰がそれを構築する責任があるのか​​よく分かりません(代わりに使用できる.dllはありますか?)。 c:\cygwin\usr\libフォルダーまたはc:\cygwin\usr\local\libフォルダーを確認することができます。

管理プロジェクトを使用している場合(eclipseがmakefileをビルドしている場合)、プロジェクトのプロパティに移動してC/C++ Build > Settingsにナビゲートします。 Tool Settingsタブで、リンカーセクションのlibrariesアイテムに移動します。適切なボックスにlibファイルの名前とフォルダを追加するだけです。

メイクファイルでは、-lコンパイラスイッチを使用してライブラリを指定し、-Lコンパイラスイッチを使用して検索パスを指定すると便利です。

3)メークファイルを使い始めるには、GNU make manualが良いでしょう。

WindowsでMakefileを実行する方法の詳細:CygwinまたはMinGWが提供するシェルを使用するようにしてください。そうでなければ、rmのようなコマンドは定義されず、あなたの人生は非常に困難になります。

また、CMakeもお考えください。より大規模なプロジェクトで使用する方が使いやすく、スケーラビリティも優れています。

プロジェクトで手作りメイクファイルを使用するには、新しいMakefile projectを作成し、Makefileファイルをプロジェクトフォルダのルートにダンプします。それでおしまい。

4)はい、ありますが、intellisenseとは呼ばれません。ソースコード内のどこにでもCTRL+Spaceを押して起動してください。

その他の楽しいツールは、右クリックメニューにあります。私の個人的なお気に入りは、ファイルを見つけて開くためのCTRL+SHIFT+R、タイプ\変数\関数\定義を見つけて開くためにCTRL+SHIFT+T、開かれたファイル内でタイプ\変数\関数\定義を見つけて移動するためにCTRL+Oです。

インデクサーは(たいていはC++コードの解析時に)ちょっとクレイジーになることがあります。上部のWindows > PreferencesメニューでC/C++ > Indexerアイテムに移動して、その動作を変更できます。

こちらがお役に立てば幸いです。

+0

すばらしい答え!私はライブラリに問題がある。 C:\ cygwin \ lib \ w32apiにwinsock2 cygwin-variant(libws2_32.aという名前)が見つかりました。そのパスを「ライブラリパス」に、libws2_32.aを「ライブラリ」に追加しました。私はまだライブラリを見つけることができないというエラーが出ています。私は元の投稿にエラーを編集しました。 – KaiserJohaan

+0

@カイザー私はそれにも問題があることを覚えています。 。 libファイルから拡張子を削除するか、フォルダスラッシュをunixスタイルに変更してみてください(\ by /を置き換えてください)。 CygwinシェルのパスとWindowsのパス( '/ c/cygwin/...'対 'C:\ cygwin \ ...')との関係も関係するかもしれません。ああ、上記のすべての組み合わせを試してみてください。 –

+0

は理解できません:|ライブラリの正しい場所であるcygwinシェルを開くと、それは/ usr/lib/w32apiでなければならない。 – KaiserJohaan

関連する問題