С какими интересными библиотеками C / C ++ можно поиграться? - PullRequest
45 голосов
/ 10 марта 2011

Я ищу несколько новых библиотек, а также C и C ++.В прошлом большую часть времени я «случайно» сталкивался с несколькими - и большинство из них нашли хорошее применение в проектах, над которыми я работал.

Библиотеки должны работать на Mac OS X и Linux / POSIX и, возможно, на Windows.

  • Lua - минимальный и быстрый механизм сценариев для файлов конфигурации и базовых сценариев приложения.
  • V8 - быстрый JavaScript-движок Google, похожий на JavaScriptCore WebKit.
  • Cairo - Хорошая графическая библиотека, похожая на QuickDraw / Quartz на MacOS X.
  • ZBar - библиотека сканера штрих-кодов, которая позволяет сканировать фотографии / изображения / видеопотоки для штрих-кодов и возвращать их значение.
  • ZLib - очень компактная библиотека сжатия для потоков данных.Используются zziblib и minizip.
  • DynaPDF - Простая в использовании библиотека для создания PDF.
  • libusb - Универсальная библиотека USB, которая обеспечивает портативный доступ к USB-устройствам (я использовал это для написания базового драйвера для пользовательского POS-принтера).
  • WebKit - Это действительно хороший вариант, если вы хотите визуализировать HTML / веб-содержимое и использовать его в приложениях, чтобы предоставить своим пользователям «более богатый» пользовательский интерфейс.
  • Qt4 - платформа общего назначения для всех видов настольных (и, возможно, мобильных) разработок.Тратить много времени на это - понятия не имею, как я мог это забыть.;)

Это должно быть отмечено сообществом вики.Пожалуйста, обновите, если у вас есть что-нибудь интересное, чтобы добавить!

Спасибо!


Обновление 1

Я не ищу библиотеки "производительности", такие как Boost или STL.Вместо этого я ищу «интересные новые вещи» случайных жанров - будь то графические библиотеки, библиотеки сценариев, сетевые или даже библиотеки MOD / MIDI для воспроизведения.Извините, я не прояснил это раньше.

Ответы [ 15 ]

22 голосов
/ 10 марта 2011

STL и Boost - это необходимость.

SQLite предоставляет полностью встроенную, полнофункциональную реляционную базу данных в несколько сотен тысяч, которую вы можете включить прямо в свой проект.Это также очень продаваемый навык из-за его высокого присутствия (он включен в Mozilla Firefox, а также в Android и iOS).

Если вы заинтересованы в создании пользовательских интерфейсов, посмотрите на ncurses - это библиотека, которая использовалась для создания многих пользовательских интерфейсов терминала и может быть очень полезна для создания игр и утилит оболочки. Qt - хороший графический интерфейс для C ++.

Если вы заинтересованы в графике или создании игр, рассмотрите SDL или OpenGL (или DirectX, если вы не против работать только в Windows).

Конечно, есть тысячи интересных библиотек.Это действительно зависит от того, что вас интересует.

12 голосов
/ 10 марта 2011

Если вы занимаетесь обработкой изображений и т. Д., Тогда OpenCV может быть интересно поэкспериментировать.

8 голосов
/ 10 марта 2011

Каждый программист C ++ должен сначала поиграть с этими двумя библиотеками:

  • Стандартная библиотека C ++ - включая контейнеры STL, алгоритм STL, функционал STL и т. Д.
  • Повышение уровня библиотек C ++.

Для графического интерфейса пользователя

7 голосов
/ 10 марта 2011

Почему бы не попробовать OGRE и заглянуть в 3D-графику?

5 голосов
/ 10 марта 2011

Библиотека визуализации может представлять интерес. Проверьте эту галерею

Библиотека визуализации - это промежуточное ПО на C ++ для высокопроизводительных приложений для 2D и 3D-графики, основанное на отраслевом стандарте OpenGL 1.x-4.x, предназначенный для разработки переносимых приложений для операционных систем Windows, Linux и Mac OS X.

Bullet Physics Library - физика с открытым исходным кодомдвигатель с 3D обнаружением столкновений, динамикой мягкого тела и динамикой твердого тела.Он используется в играх и в визуальных эффектах в фильмах.

4 голосов
/ 12 марта 2011

Если вы хотите поиграть с машинным обучением (классификаторы и тому подобное), байесовскими сетями или попробовать свои силы в создании собственных алгоритмов, но хотите использовать некоторыеинструменты, полезные для этого (например, готовые инструменты оптимизации и линейной алгебры), затем проверьте dlib .Я думаю, что это здорово, но я работаю над этим, поэтому я предвзято:)

4 голосов
/ 10 марта 2011

Повышение кажется очевидным выбором.

Но если вы ищете что-то более конкретное, чем OpenCV * Библиотека 1010 * в настоящий момент вызывает большой интерес - это библиотека компьютерного зрения с открытым исходным кодом.

3 голосов
/ 10 марта 2011

Hiberlite :

Hibernate-подобный интерфейс для SQLite, кто-то должен написать драйвер для MySQL, используя OTL !

LLVM :

JIT динамически новый код в ваш c ++

3D-движок Irrlicht

3 голосов
/ 10 марта 2011

Boost , но не производительная часть:)

Boost.Xpressive или как кодировать регулярные выражения в шаблонах!

Boost.MPL прольет новый свет наИспользуя шаблон, вы получите более тонкое представление о метапрограммировании шаблонов и углубитесь в тонкости SFINAE и выведения шаблонов.

Boost.Preprocessor проливает новый свет на использование и злоупотребление препроцессором.Это очень удобно при использовании шаблонов для генерации множества перегрузок шаблонных функций и классов (и действительно, на этом основан MPL).Интерес несколько уменьшился, хотя с появлением ...

C ++ 0x!

Новая стандартная библиотека с ее потоками!

Learnчтобы использовать std::future и std::function, откройте для себя радость лямбд, синтаксис for на основе диапазона, ключевое слово auto!

C ++ 0x имеет так много новых игрушек, что он почти чувствуеткак новый язык ... и это также хорошая щетка из ваших старых навыков и хороший способ остаться в .

3 голосов
/ 10 марта 2011

Мне нравится играть с cimg, это очень хорошая, простая в использовании библиотека изображений, с которой можно возиться: p

http://cimg.sourceforge.net/

...