가지고 놀만한 흥미로운 C/C++ 라이브러리는 무엇입니까?
저는 몇 개의 새로운 도서관과 C와 C++을 찾고 있습니다.과거 대부분의 시간 동안 저는 "우연히" 몇 가지를 우연히 발견했습니다. 그리고 그들 중 대부분은 제가 작업한 프로젝트에서 유용하게 사용되었습니다.
라이브러리는 Mac OS X 및 Linux/POSIX에서 실행되어야 하며 Windows에서도 실행될 수 있습니다.
- 루아 - 구성 파일 및 기본 응용 프로그램 스크립팅을 위한 최소의 빠른 스크립팅 엔진입니다.
- V8 - WebKit의 JavaScript Core와 유사한 Google 엔진의 빠른 JavaScript입니다.
- 카이로 - Mac OS X의 QuickDraw/Quartz와 유사한 좋은 graphcis 라이브러리입니다.
- ZBar - 사진/이미지/비디오 스트림에서 바코드를 스캔하고 값을 반환할 수 있는 바코드 스캐너 라이브러리입니다.
- ZLib - 데이터 스트림을 위한 매우 컴팩트한 압축 라이브러리입니다.zziblib과 minizip도 사용했습니다.
- DynaPDF - 사용이 간편한 PDF 생성 라이브러리입니다.
- libusb - USB 장치에 휴대용으로 액세스할 수 있는 범용 USB 라이브러리입니다(사용자 지정 POS 프린터의 기본 드라이버를 작성하는 데 사용했습니다).
- 웹킷 - HTML/웹 콘텐츠를 렌더링하고 응용 프로그램에서 사용하여 사용자에게 "더 풍부한" 사용자 환경을 제공하려면 이 기능이 매우 유용합니다.
- Qt4 - 모든 종류의 데스크톱(및 모바일) 개발을 위한 범용 프레임워크입니다.그것과 함께 많은 시간을 보내는 것 - 내가 어떻게 그것을 잊을 수 있는지 모르겠습니다.;)
커뮤니티 위키로 표시해야 합니다.추가할 흥미로운 내용이 있으면 업데이트해주세요!
감사합니다!
업데이트 1
저는 Boost나 STL과 같은 "생산성" 라이브러리를 찾고 있지 않습니다.대신 그래픽 라이브러리, 스크립팅 라이브러리, 네트워크 또는 심지어 MOD/MIDI 재생 라이브러리와 같은 임의의 장르의 "흥미로운 새로운 것"을 찾고 있습니다.전에 분명히 말하지 못해서 미안합니다.
STL과 Boost는 필수입니다.
SQLite는 프로젝트에 바로 포함할 수 있는 완전한 기능을 갖춘 100k의 관계형 데이터베이스를 제공합니다.또한 높은 존재감(Mozilla Firefox 및 Android 및 iOS에 포함됨)으로 인해 시장성이 높은 기술입니다.
사용자 인터페이스를 만드는 데 관심이 있다면, 많은 터미널 사용자 인터페이스를 만드는 데 사용된 라이브러리이며 게임 및 셸 유틸리티를 만드는 데 매우 유용할 수 있습니다.Qt는 C++을 위한 좋은 GUI 프레임워크입니다.
그래픽이나 게임 제작에 관심이 있는 경우 SDL 또는 OpenGL(Windows에서만 작업해도 괜찮으면 DirectX)을 고려해 보십시오.
물론, 수천 개의 흥미로운 도서관들이 있습니다.그것은 정말로 당신이 관심 있는 것에 달려 있습니다.
이미지 처리 등에 관심이 있다면 OpenCV를 사용하는 것이 흥미로울 수 있습니다.
모든 C++ 프로그래머는 먼저 다음 두 라이브러리를 가지고 놀아야 합니다.
- C++ 표준 라이브러리 - STL 컨테이너, STL 알고리즘, STL 기능 등을 포함합니다.
- C++ 라이브러리를 강화합니다.
GUI용
OGRE를 사용해보고 3D 그래픽을 들여다보는 것은 어떨까요?
시각화 라이브러리에 관심이 있을 수 있습니다.이 갤러리를 확인하십시오.
Visualization Library는 업계 표준 OpenGL 1.x-4.x를 기반으로 하는 고성능 2D 및 3D 그래픽 애플리케이션을 위한 C++ 미들웨어로, Windows, Linux 및 Mac OS X 운영 체제용 휴대용 애플리케이션을 개발하도록 설계되었습니다.
총알 물리학 Library는 3D 충돌 감지, 부드러운 차체 역학 및 단단한 차체 역학을 특징으로 하는 오픈 소스 물리학 엔진입니다.그것은 게임과 영화의 시각 효과에 사용됩니다.
부스트는 명백한 선택인 것 같습니다.
그러나 좀 더 구체적인 것을 찾고 있다면 OpenCV 라이브러리는 현재 많은 관심을 불러일으키고 있는 것 같습니다. 오픈 소스 컴퓨터 비전 라이브러리입니다.
기계 학습(분류기 등)이나 베이지안 네트워크를 가지고 놀고 싶거나 직접 알고리즘을 만들어보고 싶지만 이를 위해 유용한 도구(예: 준비된 최적화 및 선형 대수 도구)를 사용하고 싶다면 dlib를 확인하십시오.훌륭하다고 생각하지만, 저는 그것을 작업하기 때문에 편견이 있습니다 :)
저는 cimg와 노는 것을 즐깁니다. 매우 좋고 사용하기 쉬운 이미지 라이브러리이며 장난치기에 좋습니다. :p
일상 업무에 통합할 수 있는 라이브러리를 찾고 있을 것입니다. 하지만 홈 프로젝트의 경우 C++ Wiimote 라이브러리는 다음과 같은 흥미로운 프로젝트로 이어질 수 있습니다.
http://pawst.com/post/471040-c-wiimote-library
부스트 하지만 생산적인 부분은 아닙니다 :)
Boost.Xpressive 또는 템플릿에서 정규 표현식을 인코딩하는 방법!
Boost.MPL은 템플릿 사용에 대한 새로운 조명을 제공할 것이며, 템플릿 메타프로그래밍의 세부 사항을 파악하고 SFINAE와 템플릿 공제의 세부 사항을 더 깊이 파고들 것입니다.
Boost.프리프로세서는 프리프로세서의 사용과 남용에 대해 새로운 조명을 제공할 것입니다.템플릿을 사용하여 템플릿 함수 및 클래스의 여러 오버로드를 생성할 때 매우 유용합니다(실제로 MPL은 이를 기반으로 합니다)....의 출현에 따라 흥미는 다소 떨어집니다.
C++0x!
스레드가 포함된 새로운 표준 라이브러리!
사용법 배우기std::future
그리고.std::function
레인지 기반 람다의 즐거움을 발견합니다.for
구문,auto
키워드!
C++0x는 새로운 장난감이 너무 많아서 거의 새로운 언어처럼 느껴집니다...그리고 그것은 또한 당신의 오래된 기술을 잘 빗어주고 머물기에 좋은 방법입니다.
SQLite에 대한 최대 절전 모드와 같은 인터페이스를 사용할 경우 OTL를 사용하여 mysql에 드라이버를 작성해야 합니다!
LLVM:
JIT는 C++에 동적으로 새로운 코드를 추가합니다.
Cinder와 openFrameworks는 그들이 말했듯이 '창의적 코딩'을 위한 훌륭한 도구 키트입니다.이러한 라이브러리 또는 라이브러리 모음은 수학 및 네트워킹에서 2D, 3D 그래픽, 다양한 입력 장치 인터페이스 등 모든 것을 다룹니다.
제가 마지막으로 c++과 관련된 것을 파고든 것은 SWIG와 함께 했을 때였습니다.C++ 코드를 파이썬에 연결할 수 있는 래퍼/인터페이스 생성기입니다.
SWIG를 사용하는 것이 얼마나 간단한지 깨닫는 것은 그 자체로 계몽적이고 꽤 재미있습니다.그런 다음 Python과 C++ 라이브러리를 섞으며 놀 수 있습니다.
재미있게 보내!
게임 개발용 - OGRE
GUI 개발용 - wxWidgets - CrossPlatform GUI 라이브러리
그리고 두 도서관은 모두 오픈소스입니다.
오그레는 이미 언급되었습니다.만약 여러분이 3D로 들어가고 싶다면, Panda3D는 배우기 쉽다는 것을 알게 되었습니다.
플레이어/스테이지 프로젝트는 로봇 제어 인터페이스 및 시뮬레이션 라이브러리입니다.로봇을 시뮬레이션하거나 실제 로봇에서 실행할 수 있습니다.
언급URL : https://stackoverflow.com/questions/5260621/what-are-some-interesting-c-c-libraries-to-play-around-with
'programing' 카테고리의 다른 글
Spring Boot 테스트에서 트랜잭션 커밋을 강제하는 방법은 무엇입니까? (0) | 2023.07.10 |
---|---|
자동 구성을 중단하지 않고 Spring-Boot에서 MappingMongoConverter(setMapKeyDotReplacement)를 사용자 지정하는 방법은 무엇입니까? (0) | 2023.07.10 |
오래된 Git commit을 어떻게 수정합니까? (0) | 2023.07.10 |
파이썬의 클래스 상수 (0) | 2023.07.10 |
단일 SQL 연결에서 여러 SQL 명령을 실행하는 방법은 무엇입니까? (0) | 2023.07.10 |