2012-04-06 2 views
0

크로스 플랫폼 프로그래밍을위한 C 언어 프로그래밍 라이브러리/프레임 워크가 있는지 궁금합니다. C++ 용 Wxwidgets, Boost, Qt, U ++ 및 기타와 같은 프레임 워크가 이미 있지만 C 용으로 아직 찾지 못했음을 의미합니다. 정보 업데이트C 용 크로스 플랫폼 프레임 워크가 있습니까?

:

우리는 기본 프레임 워크/라이브러리를 구축을 위해 노력하는 우리의 프로젝트에 사용된다. 우리는 닷넷 (dotnet)을 없애고 신속하고 덜 까다로운 라이브러리를 대신 제공 할 것입니다.

우리는 서버/클라이언트 기반 프로젝트에서 작업 할 것이므로 기본 서비스는 빠르며 휴대 가능해야합니다. GUI는 이제 우리의 우선 순위가 아니지만 스레딩 기능을 제공하는 라이브러리는 우리에게 중요합니다.

그리고 ANSI 부분에 대해서는 미래에 어떤 것이 바뀌지 않는 한 그 순간에도 괜찮습니다.

+0

당신은 C – AurA

+0

와 gtk +를 사용할 수 있습니다 만, gtk + GUI 툴킷 만 아니십니까? – Breeze

답변

0

당신이 일반 ANSI C를 작성하는 경우, 그것은 모든 POSIX 시스템에서 작동합니다. 크로스 플랫폼 C 라이브러리의 가장 성공적인 예제는 표준 C 라이브러리 자체 (IMHO)입니다.

GUI 툴킷을 찾고 있다면 터미널 UI를 찾으려면 GTK가 대답입니다 ( ). ncurses는 꽤 휴대 가능합니다.

일반적인 사용 라이브러리는 ANSI C로 작성된 경우 시스템 수준 API를 사용하지 않는 한 거의 모든 곳에서 작동해야합니다.

찾고 계신 라이브러리/프레임 워크의 종류는 무엇입니까?

+0

감사합니다. 우리는 우리 프로젝트에서 사용할 기본 프레임 워크/라이브러리를 만들려고 노력하고 있습니다. 우리는 닷넷 (dotnet)을 없애고 빠르고 대신 덜 필요로하는 라이브러리를 제공 할 것입니다. 우리는 서버/클라이언트 기반 프로젝트에서 작업 할 것이므로 기본 서비스는 빠르며 휴대 가능해야합니다. GUI는 이제 우리의 우선 순위가 아니지만 스레딩 기능을 제공하는 라이브러리는 우리에게 중요합니다. 그리고 ANSI 부분에서, 나는 sth가 장래에 그것을 변경하지 않는 한 그 순간에 우리는 괜찮다고 생각합니다. – Breeze

+0

@Hossein이 질문에 대한 답을 찾으십시오. http://stackoverflow.com/questions/5613646/threading-in-c-cross-platform libs에 대한 유용한 링크를 찾을 수 있습니다 – BigMike

+0

고마워요. 동안 . 지금까지 OPenMp와 Glib로 충분합니다. 다시 한 번 감사드립니다. – Breeze

0

은 오랫동안 확립되어 왔으며 크로스 플랫폼 C 전용 (또는 주로) 툴킷을 적극적으로 관리하고 있습니다. 온라인 문서뿐만 아니라 그것에 관해 쓰여진 책도 있습니다. GNOME 프로젝트를 뒷받침하는 프레임 워크입니다.

GTK +는 우선 UI가있는 응용 프로그램을 빌드하기위한 것입니다. 그러나 UI가 필요하지 않더라도 일부 GTK + 구성 요소, 즉 GLib은 Qt와 비교할만한 일반적인 멀티 플랫폼 지원을 제공합니다. 사실 UI가없는 프레임 워크가 필요했고 APR 이상의 GLib를 선택했습니다. 설명서와 튜토리얼을 더 쉽게 찾을 수 있었기 때문입니다.

GTK +는 UN * X에서 처음 개발되었으며 가장 쉽게 실행할 수있는 플랫폼으로 남아 있습니다. 나는 그것이 윈도우에서 더 어렵다고 말하지 않을 것이다. 더 많은 환경 옵션을 컴파일하는 것만으로도 충분합니다. 나는 준비된 GTK + 패키지와 MinGW으로 시작했으나 GTK +와 MSVC를 통합했다.

GTK +는 오래 동안 존재하며 일부 사람들은 구식이라고 느낄 수 있습니다. 다른 한편으로, 그것은 그것이 안정적이고 유용하다는 것이 입증되었음을 보여줍니다. C++C#에 대한 바인딩도 있습니다.

모든 큰 프레임 워크와 마찬가지로, 더 많이 배우면 더 오래 배우기도합니다. 하지만 다른 방법으로도 작동합니다. 더 많이 배울수록 더 많은 것을 배울 수 있습니다. 일관된 코딩 스타일은 익숙해 지는데 도움이됩니다.

--- Ferda

+0

대단히 감사합니다. 나는 우리의 목적과 필요에 관한 정보를 가지고 나의 게시물을 업데이트했다. GLib가 보입니다.하지만 스레드와 같은 작업을 지원하는 것과 같은 몇 가지 기능을 제공하는 sth가 필요합니다. – Breeze

+0

당신을 진심으로 환영합니다. GLib는 스레드와 네트워킹을 지원하지만, 주로 성능 향상을 위해 개발되지 않았습니다. 클라이언트/서버 응용 프로그램을 전문으로하는 사람들이 있습니다. [여기에있는 다른 스레드] (http://bit.ly/xjdFUR)는 ACE, POCO 및 ASIO를 말합니다. 그들 모두 C++, 나는 두려워합니다 ... 나는 [ASIO] (http://think-async.com/Asio/)를 한 번 평가했는데, 이것은 Windows상의 IOCP와 같은 특정 OS에서 가장 빠른 지원을 사용하는 것을 좋아했습니다. . 비동기 IO에 관한 [여기] (http://bit.ly/HjidRO)와 [여기] (http://bit.ly/HBybRF)가 있습니다. –

+0

대단히 감사합니다. @ Ferdinand Prantl. 그 중에 Glib만이 C와 친숙하다는 것 (호환 가능합니다)이 나머지 C++에 필적 할 것 같습니다. 어떤 식 으로든, OpenMP와 Glib 사이에는 OpenMP를 사용할 것이고, 더 많이 필요하다면 Glib 덕분이라고 생각합니다. – Breeze

관련 문제