Together HTML & C++ we'll discuss

Добро пожаловать на мой сайт!

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

Почему именно c/c++?

Не совсем так. Я использую довольно большой стек программ, страраяь применить максимально подходящий набор программ, но по большей части использую Qt, так как он хорошо развит, распространяется по GPL (в том чесле), код можно писать на с++(в qt не только чистый c++), qml (инструмент для простого редактирования связки компонентов), js (QEngine) и менее используемые компонениы.

С++ развивается, хотя и не спешно, основные компоненты проходят тщательные проверку и включаются в новый стандарт (с++11, с++14, с++17 ...)

Кроме самого стандарта С++ и Си есть уйма программ, которые позволяют решать обсолютно любые задачи (кроме станрдартных библиотек есть и для баз даных, и с LDAP, и для работы с интернетом, и для работы с любой программой, и для работы с другими языками (python, java, ...), которая хоть сколько нибидь хочет остатся на рынке).

Добро пожаловать, тут я раскажу немного про програмирование на c/c++

Система сборки

Если вы уже пишите программы, то наверника знаете как непросто создать/скомпилировать большой проект.

Есть довольно много систем для сборки проектов такие как autotools, cmake, qmake..., но зачастую с ними не просто справится. Самый простой, на мой взгляд - это qmake, но и в нем есть моменты, которые создают много проблем:

  • по умолчанию программа устанавливается в жесткое задоное место (в qt creator - "/opt/App") и нет любимого мной "--prefix ~/myApp"
  • программа плохо поддерживает подпроекты (для сложной структуры предпочтительней cmake)

Для решения проблем со своим проектом я изобретал велосипед (весьма удачно получилось):

  • В начале я написал программу которая просто как-то работает (работает как надо, но мне хотелось использовать код этой программы и далее).
  • Переместил программу в новую папку и начал потрошить на библиотеки
  • разбил программу на модули, разместил их по папкам и создал два файла: "default.pri" и "myLib.pro"
  • В myLib.pro я написал 2 строчки: "TEMPLATE = subdirs" и "SUBDIRS += lib1 lib2 ...", а в default.pri я вынес общую часть конфига (куда устанавливать, какие библиотеки использовать ...), которые я подключаю в конфигах своих библиотек.
  • ну а в папках я создал конфиг с 2 строчками: "TARGET = lib1" и "include(../default.pri)"