web-dev-qa-db-ja.com

いろいろなC / C ++ライブラリを試してみてください。

いくつかの新しいライブラリと、CおよびC++を探しています。過去のほとんどの時間で、私は「偶然に」いくつかに偶然出会いました-そして、それらのほとんどは、私が取り組んでいるプロジェクトでうまく利用されていました。

ライブラリは、Mac OS XとLinux/POSIX、および場合によってはWindowsで実行する必要があります。

  • Lua -構成ファイルおよび基本的なアプリケーションスクリプト用の最小限かつ高速なスクリプトエンジン。
  • V8 -WebKitのJavaScriptCoreに似たGoogleエンジンによる高速JavaScript。
  • Cairo -Mac OS XのQuickDraw/Quartzに似た優れたgraphcisライブラリ。
  • ZBar -写真/画像/ビデオストリームをスキャンしてバーコードを取得し、その値を返すことができるバーコードスキャナーライブラリ。
  • ZLib -データストリーム用の非常にコンパクトな圧縮ライブラリ。 zziblibとminizipも使用しました。
  • DynaPDF -使いやすいPDF生成ライブラリ。
  • libusb -USBデバイスへのポータブルアクセスを可能にするユニバーサルUSBライブラリ(これを使用して、カスタムPOSプリンター)。
  • WebKit -これは、HTML/Webコンテンツをレンダリングし、アプリケーションで使用して、ユーザーに「より豊かな」ユーザーエクスペリエンス。
  • Qt4 -あらゆる種類のデスクトップ(および場合によってはモバイル)開発向けの汎用フレームワーク。それに多くの時間を費やしている-どうすればそれを忘れることができるかわからない。 ;)

これはコミュニティWikiとしてマークする必要があります。追加する何か面白いものがあれば更新してください!

ありがとう!


アップデート1

BoostやSTLのような「生産性」ライブラリを探していません。その代わりに、グラフィックライブラリ、スクリプトライブラリ、ネットワーク、さらにはMOD/MIDI再生ライブラリなど、ランダムなジャンルの「興味深い新しいもの」を探しています。申し訳ありませんが、以前はそのことを明確にしていませんでした。

45
BastiBen

STLとBoostは必須です。

SQLite は、プロジェクトに直接含めることができる、完全に埋め込まれたフル機能のリレーショナルデータベースを数100kで提供します。存在感が高いため、市場性の高いスキルでもあります(Mozilla FirefoxおよびAndroidおよびiOS)に含まれています)。

ユーザーインターフェイスの作成に興味がある場合は、 ncurses を調べてください。これは、多くの端末ユーザーインターフェイスの作成に使用されたライブラリであり、ゲームやシェルユーティリティの作成に非常に役立ちます。 Qt は、C++に適したGUIフレームワークです。

グラフィックスやゲームの作成に興味がある場合は、SDLまたはOpenGL(Windowsだけで作業しても構わない場合はDirectX)を検討してください。

もちろん、数千の興味深いライブラリがあります。それは本当にあなたが何に興味があるかに依存します。

22
Rafe Kettler

画像処理などに興味がある場合は、 OpenCV を試してみるのも面白いかもしれません。

12
Tony The Lion

すべてのC++プログラマーは、最初にこれら2つのライブラリーをいじる必要があります。

  • C++標準ライブラリ-STLコンテナ、STLアルゴリズム、STL関数などを含みます。
  • Boost C++ Libraries。

GUIの場合

8
Nawaz

[〜#〜] ogre [〜#〜] を試して3Dグラフィックを覗いてみませんか?

7

Visualization Library は興味深いかもしれません。 このギャラリーをチェックしてください

Visualization Libraryは、業界標準のOpenGL 1.x-4.xに基づく高性能2Dおよび3Dグラフィックアプリケーション用のC++ミドルウェアであり、Windows、Linux、およびMac OS Xオペレーティングシステム用のポータブルアプリケーションを開発するために設計されています。

Bullet Physics Library は、3D衝突検出、ソフトボディダイナミクス、およびリジッドボディダイナミクスを特徴とするオープンソースの物理エンジンです。ゲームや映画の視覚効果で使用されます。

5
yolo

Boostは明らかな選択のようです。

しかし、もう少し具体的なものを探している場合、OpenCVライブラリは、瞬間-それはオープンソースのコンピュータービジョンライブラリです。

4
GrahamS

機械学習 (分類子とその類のもの)、 ベイジアンネットワーク で遊んだり、独自のアルゴリズムを作成したが、いくつかのツールを使用したい場合これを行うのに便利です(たとえば、既製の最適化ツールと線形代数ツール)。次に dlib を確認してください。私はそれは素晴らしいと思いますが、私はそれに取り組んでいるので、偏っています:)

4
Davis King

Boostですが、生産的な部分ではありません:)

Boost.Xpressiveまたはテンプレートで正規表現をエンコードする方法!

Boost.MPLはテンプレートの使用に新たな光を当て、テンプレートメタプログラミングのより細かい概要を理解し、SFINAEとテンプレートの控除の微妙なところまで掘り下げます。

Boost.Preprocessorは、プリプロセッサーの使用と乱用に新たな光を当てます。テンプレートを使用して、テンプレート関数とクラスの複数のオーバーロードを生成するときに非常に便利です(実際、MPLはそれに基づいています)。興味はやや減少しますが...

C++ 0x!

スレッドを備えた新しい標準ライブラリ!

std::futurestd::functionの使い方を学び、ラムダの喜び、範囲ベースのfor構文、autoキーワードを発見してください!

C++ 0xには非常に多くの新しいおもちゃがあり、ほとんど新しい言語のように感じられます。また、古いスキルを磨き、inを維持するための良い方法でもあります。

3
Matthieu M.

私はcimgをいじるのを楽しんでいます、それは非常に良い、使いやすい画像ライブラリで、:pをいじるのに適しています

http://cimg.sourceforge.net/

3
Eamonn McEvoy

Hiberlite

sQLiteへの休止状態のようなインターフェイスです。誰かが [〜#〜] otl [〜#〜]

[〜#〜] llvm [〜#〜]

JITで動的に新しいコードをC++に

Irrlicht 3D engine

3
lurscher

CinderopenFrameworks は、「クリエイティブコーディング」のための素晴らしいツールキットです。これらのライブラリ、またはライブラリのコレクションは、数学やネットワーキングから2D、3Dグラフィックスまで、さまざまな入力デバイスとのインターフェースなど、すべてをカバーしています。

2
shakurov

ゲーム開発用- [〜#〜] ogre [〜#〜]
GUI開発用- wxWidgets- CrossPlatform GUI Library

そして、どちらのライブラリもオープンソースです。

2
Mahesh

日常業務に統合できるライブラリを探しているのは確かですが、ホームプロジェクトの場合、C++ Wiimoteライブラリがいくつかの興味深いプロジェクトにつながる可能性があります。

http://pawst.com/post/471040-c-wiimote-library

2

鬼はすでに言及されました。 3Dに移行する場合は、 Panda3D を学ぶのが簡単だと思います。

プレイヤー/ステージプロジェクト は、ロボット制御インターフェースおよびシミュレーションライブラリです。ロボットをシミュレートしたり、実際のロボットで実行したりできます。

1

最後にc ++に関連するものを掘り下げて楽しんだのは [〜#〜] swig [〜#〜] でした。 C++コードをPythonにリンクできるラッパー/インターフェースジェネレーターです。

SWIGを使用するのがいかに簡単であるかを理解することは、それ自体が啓蒙的で非常に楽しいものです。次に、PythonとC++ライブラリを混合して遊ぶことができます。

楽しんで!

1
log0