Поделиться ... Twitter Facebook Содержание Замена Visual Studio Компилятор и библиотеки Установка IDE « ЖурналЛот в %% депозита » Замена Visual Studio c, cpp, mingw, codeblock Визуальная студия в очередной раз не оправдала возложенных на неё надежд Писать в ней (и с её библиотеками) человеку привыкшему к Linux (BSD, *nix) мучительно больно. Нехватает библиотек, нехватает привычных средств работы с текстом и проектами. Какое-то время честно пытался работать в студии, но быстро скатился что от неё использую только редактор. Дальше хуже - редактор внешний, а от студии только «командная строка разработчика» для компиляции и сброки. Последней каплей стало то в очередном проекте понадобились pcre и iconv. Вполне естественное требование для софта работающего с текстом. Но собрать и поставить эти библиотеки в студию оказалось непростой задачей. В итоге - к чёрту студию, есть другие компиляторы, библиотеки и IDE. Не столь монструозные и к тому не требующие «регистрации разработчика». Ставлю привычные компиляторы, тулзы и библиотеки из MinGW и CodeBlocks как среду разработки. Компилятор и библиотеки Устанавливаем GCC, утилиты и библиотеки из комплекта MinGW-64. Собственно ознакомившись с http://mingw-w64.org переходим на http://win-builds.org и скачиваем полный toolchain. Далее под win10 приходится делать некоторые усилия - отключать антивир(точнее фаервол) и запускать инсталлятор с правами администратора. Этот баг известен и монтейнеры/разработчики win-build в курсе проблемы, но явно не успевают за чужой паранойей В качестве каталога для распаковки/инсталляции крайне рекомендую использовать C:\MinGW - именно по этому пути многие внешние утилиты/программы ищут gcc После того инсталлятор скачает и распакует все требуемые архивы остаётся только добавить некоторые переменные в окружение, а именно : Добавить C:\MinGW\bin;C:\MinGW\mingw\bin в PATH PKG_CONFIG_LIBDIR=C:\MinGW\lib\pkgconfig QMAKEPATH=C:\MinGW QMAKESPEC=win32-g++ После изменения окружения надо выйти-войти или перезагрузить компьютер Теперь можно проверить что получилось открыв командную строку (запустив cmd.exe) и запустить: gcc –version gmake –version pkg-config –list-all C:\src\>gmake --version GNU Make 4.0 Built for i686-w64-mingw32 Copyright (C) 1988-2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. C:\src\>gcc --version gcc.EXE (GCC) 4.8.3 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ao ao - ao is a cross-platform audio output library atk Atk - Accessibility Toolkit cairo-fc cairo-fc - Fontconfig font backend for cairo graphics library cairo-ft cairo-ft - FreeType font backend for cairo graphics library cairo-gobject cairo-gobject - gobject functions for cairo graphics library cairo-pdf cairo-pdf - PDF surface backend for cairo graphics library cairo-png cairo-png - PNG functions for cairo graphics library cairo-ps cairo-ps - PostScript surface backend for cairo graphics library cairo-script cairo-script - script surface backend for cairo graphics library cairo-svg cairo-svg - SVG surface backend for cairo graphics library cairo-win32-font cairo-win32-font - Microsoft Windows font backend for cairo graphics library cairo-win32 cairo-win32 - Microsoft Windows surface backend for cairo graphics library cairo cairo - Multi-platform 2D graphics library check Check - A unit test framework for C dbus-1 dbus - Free desktop message bus ddjvuapi ddjvuapi - DjVu decoding api. dvdnav libdvdnav - DVD Navigation library dvdread libdvdread - Low level DVD access library ecore-audio-cxx ecore-audio-cxx - E core library, audio module C++ API ecore-audio ecore-audio - E core library, audio module ecore-avahi ecore-avahi - E core library, avahi integration ecore-con ecore-con - E core library, Con module ecore-evas ecore-evas - E core library, Evas module ecore-file ecore-file - E core library, File module ecore-imf-evas ecore-imf-evas - E core library, IMF Evas module ecore-imf ecore-imf - E core library, IMF module ecore-input-evas ecore-input-evas - E core library, Input module Evas extension ecore-input ecore-input - E core library, Input module ecore-ipc ecore-ipc - E core library, IPC module ecore-win32 ecore-win32 - E core library, Win32 module ecore ecore - Ecore event abstraction library edje edje - Enlightened graphical design and layout engine. eet eet - Library for speedy data storage, retrieval, and compression efreet-mime efreet-mime - Freedesktop Shared Mime Info standard implementation for the EFL efreet-trash efreet-trash - Freedesktop Shared Trash implementation for the EFL efreet efreet - Freedesktop standards implementation for the EFL eina Eina - A Library that implements fast data types and miscellaneous tools eio eio - Enlightenned Asynchronous Input Output library eldbus eldbus - D-Bus access from Ecore elementary elementary - Mobile device touchscreen widget library embryo embryo - A small virtual machine engine and bytecode compiler emotion emotion - Emotion evas based multimedia library Enginio Enginio - Enginio module eo Eo - EFL's generic object system library. eolian eolian - EFL's .eo parser and code generator. ethumb ethumb - Thumbnail Generator Library ethumb_client ethumb_client - Thumbnail Client Library evas-software-buffer evas-software-buffer - Evas software buffer engine evas-software-ddraw evas-software-ddraw - Evas software DirectDaw engine evas-software-gdi evas-software-gdi - Evas software GDI engine evas evas - Evas canvas display library evil evil - Library that ports on Windows some specific Unix functions. expat expat - expat XML parser flac FLAC - Free Lossless Audio Codec Library flac++ FLAC++ - Free Lossless Audio Codec Library (C++ API) fontconfig Fontconfig - Font configuration and customization library freetype2 FreeType 2 - A free, high-quality, and portable font engine. fribidi GNU FriBidi - Unicode Bidirectional Algorithm Library gail Gail - GNOME Accessibility Implementation Library gdk-2.0 GDK - GTK+ Drawing Kit (win32 target) gdk-pixbuf-2.0 GdkPixbuf - Image loading and scaling gdk-win32-2.0 GDK - GTK+ Drawing Kit (win32 target) gio-2.0 GIO - glib I/O library gio-windows-2.0 GIO Windows specific APIs - Windows specific headers for glib I/O library glib-2.0 GLib - C Utility Library gmodule-2.0 GModule - Dynamic module loader for GLib gmodule-export-2.0 GModule - Dynamic module loader for GLib gmodule-no-export-2.0 GModule - Dynamic module loader for GLib gnutls GnuTLS - Transport Security Layer implementation for the GNU system gobject-2.0 GObject - GLib Type, Object, Parameter and Signal Library gthread-2.0 GThread - Thread support for GLib gtk+-2.0 GTK+ - GTK+ Graphical UI Library (win32 target) gtk+-win32-2.0 GTK+ - GTK+ Graphical UI Library (win32 target) harfbuzz harfbuzz - Text shaping library hogweed Hogweed - Nettle low-level cryptographic library (public-key algorithms) icu-i18n icu-i18n - International Components for Unicode: Internationalization library icu-io icu-io - International Components for Unicode: Stream and I/O Library icu-le icu-le - International Components for Unicode: Layout library icu-lx icu-lx - International Components for Unicode: Paragraph Layout library icu-uc icu-uc - International Components for Unicode: Common and Data libraries id3tag id3tag - ID3 tag reading library jansson Jansson - Library for encoding, decoding and manipulating JSON data json-c json-c - JSON implementation in C lcms lcms - LCMS Color Management Library lcms2 lcms2 - LCMS Color Management Library libarchive libarchive - library that can create and read several streaming archive formats libavcodec libavcodec - FFmpeg codec library libavdevice libavdevice - FFmpeg device handling library libavfilter libavfilter - FFmpeg audio/video filtering library libavformat libavformat - FFmpeg container format library libavutil libavutil - FFmpeg utility library libcares c-ares - asynchronous DNS lookup library libcrypto OpenSSL-libcrypto - OpenSSL cryptography library libcurl libcurl - Library to transfer files with ftp, http, etc. libdvdcss libdvdcss - DVD access and decryption library. libexslt libexslt - EXSLT Extension library libffi libffi - Library supporting Foreign Function Interfaces liblzma liblzma - General purpose data compression library libmpeg2 libmpeg2 - MPEG-1 and MPEG-2 stream decoding library libmpeg2convert libmpeg2convert - Image conversion library helper for libmpeg2 libpcre libpcre - PCRE - Perl compatible regular expressions C library with 8 bit character support libpcre16 libpcre16 - PCRE - Perl compatible regular expressions C library with 16 bit character support libpcre32 libpcre32 - PCRE - Perl compatible regular expressions C library with 32 bit character support libpcrecpp libpcrecpp - PCRECPP - C++ wrapper for PCRE libpcreposix libpcreposix - PCREPosix - Posix compatible interface to libpcre libpng libpng - Loads and saves PNG files libpng14 libpng - Loads and saves PNG files libpostproc libpostproc - FFmpeg postprocessing library libsoup-2.4 libsoup - a glib-based HTTP library libsoup-gnome-2.4 libsoup - a glib-based HTTP library libssl OpenSSL - Secure Sockets Layer and cryptography libraries libswresample libswresample - FFmpeg audio resampling library libswscale libswscale - FFmpeg image rescaling library libtasn1 libtasn1 - Library for ASN.1 and DER manipulation libtiff-4 libtiff - Tag Image File Format (TIFF) library. libxml-2.0 libXML - libXML library version2. libxslt libxslt - XSLT library version 2. lua Lua - An Extensible Extension Language mad MAD - libmad library nettle Nettle - Nettle low-level cryptographic library (symmetric algorithms) ogg ogg - ogg is a library for manipulating ogg bitstreams openssl OpenSSL - Secure Sockets Layer and cryptography libraries and tools opus Opus - Opus IETF audio codec (floating-point build) pango Pango - Internationalized text handling pangocairo Pango Cairo - Cairo rendering support for Pango pangowin32 Pango Win32 - Win32 GDI font support for Pango pixman-1 Pixman - The pixman library (version 1) Qt Qt - Qt Configuration Qt5AxBase Qt5 AxBase - Qt AxBase module Qt5AxContainer Qt5 AxContainer - Qt AxContainer module Qt5AxServer Qt5 AxServer - Qt AxServer module Qt5Bluetooth Qt5 Bluetooth - Qt Bluetooth module Qt5Bootstrap Qt5 Bootstrap - Qt Bootstrap module Qt5CLucene Qt5 CLucene - Qt CLucene module Qt5Concurrent Qt5 Concurrent - Qt Concurrent module Qt5Core Qt5 Core - Qt Core module Qt5DBus Qt5 DBus - Qt DBus module Qt5Declarative Qt5 Declarative - Qt Declarative module Qt5Gui Qt5 Gui - Qt Gui module Qt5Help Qt5 Help - Qt Help module Qt5Multimedia Qt5 Multimedia - Qt Multimedia module Qt5MultimediaQuick_p Qt5 MultimediaQuick_p - Qt MultimediaQuick_p module Qt5MultimediaWidgets Qt5 MultimediaWidgets - Qt MultimediaWidgets module Qt5Network Qt5 Network - Qt Network module Qt5Nfc Qt5 Nfc - Qt Nfc module Qt5OpenGL Qt5 OpenGL - Qt OpenGL module Qt5OpenGLExtensions Qt5 OpenGLExtensions - Qt OpenGLExtensions module Qt5PlatformSupport Qt5 PlatformSupport - Qt PlatformSupport module Qt5Positioning Qt5 Positioning - Qt Positioning module Qt5PrintSupport Qt5 PrintSupport - Qt PrintSupport module Qt5Qml Qt5 Qml - Qt Qml module Qt5QmlDevTools Qt5 QmlDevTools - Qt QmlDevTools module Qt5Quick Qt5 Quick - Qt Quick module Qt5QuickParticles Qt5 QuickParticles - Qt QuickParticles module Qt5QuickTest Qt5 QuickTest - Qt QuickTest module Qt5QuickWidgets Qt5 QuickWidgets - Qt QuickWidgets module Qt5Script Qt5 Script - Qt Script module Qt5ScriptTools Qt5 ScriptTools - Qt ScriptTools module Qt5Sensors Qt5 Sensors - Qt Sensors module Qt5SerialPort Qt5 SerialPort - Qt SerialPort module Qt5Sql Qt5 Sql - Qt Sql module Qt5Svg Qt5 Svg - Qt Svg module Qt5Test Qt5 Test - Qt Test module Qt5UiTools Qt5 UiTools - Qt UiTools module Qt5WebSockets Qt5 WebSockets - Qt WebSockets module Qt5Widgets Qt5 Widgets - Qt Widgets module Qt5WinExtras Qt5 WinExtras - Qt WinExtras module Qt5Xml Qt5 Xml - Qt Xml module Qt5XmlPatterns Qt5 XmlPatterns - Qt XmlPatterns module sdl2 sdl2 - Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. sigc++-2.0 libsigc++ - Typesafe signal and callback system for C++ sndfile sndfile - A library for reading and writing audio files sox SoX - Audio file format and effects library sqlite3 SQLite - SQL database engine theora theora - Theora video codec theoradec theora - Theora video codec (decoder) theoraenc theora - Theora video codec (encoder) vorbis vorbis - vorbis is the primary Ogg Vorbis library vorbisenc vorbisenc - vorbisenc is a library that provides a convenient API for setting up an encoding environment using libvorbis vorbisfile vorbisfile - vorbisfile is a library that provides a convenient high-level API for decoding and basic manipulation of all Vorbis I audio streams x264 x264 - H.264 (MPEG4 AVC) encoder library zlib zlib - zlib compression library Достойный набор библиотек, практически на все случаи жизни Установка IDE В качестве IDE выбрал CodeBlocks, хотя можно например и QtCreator. CodeBlocks так CodeBlocks - читаем тут http://www.codeblocks.org/ скачиваем отсюда http://www.codeblocks.org/downloads/26 выбирая вариант без встроенного MinGW (потому что он уже поставлен) Запускаем..оупс - автоматически ненашёлся компилятор Задаём его вручную - Settings/Compiler во вкладке ToolChain Executables ставим Compiler Installation Directory - C:\MinGW (у меня он так и был) В прочих Program Files - удаляем ненужный префикс «mingw32-» у всех программ (в нашем тулчейне оригинальные имена) Собственно всё…