1 Востаннє редагувалося Дмитро-Чебурашка (06.03.2019 14:08:37)

Тема: Задоволення залежностей програм і бібліотек від інших бібліотек і таке

Доброго дня!

Задоволення залежностей програм і бібліотек від інших бібліотек і прочого іншого коду



FasTC пише мені Requirements:
CMake (3.1)
libpng (1.5.13)
zlib (1.2.5)

Installation:
FasTC uses CMake to generate build files. The best way to do so is to create a separate build directory for compilation:

mkdir FasTC
cd FasTC
git clone https://github.com/Mokosha/FasTC.git src
mkdir build
cd build
cmake ../src -DCMAKE_BUILD_TYPE=Release
make
Once you do this you will be able to run some examples.



Я тобто скачав zlib і за хвилину його скомпіляв, створилися libzlibstatic.a, libzlib.dll.a, libzlib.dll,
example64.exe, example.exe  і може там ще щось.

Що робити далі? я наприклад компіляю щось інше що начебто вимагає zlib і що мені робити?

От наприклад я скачаю ще щось що містить CMakeLists або щось, і шо?

2

Re: Задоволення залежностей програм і бібліотек від інших бібліотек і таке

Дмитро-Чебурашка написав:

Доброго дня!

Задоволення залежностей програм і бібліотек від інших бібліотек і прочого іншого коду



FasTC пише мені Requirements:
CMake (3.1)
libpng (1.5.13)
zlib (1.2.5)

Installation:
FasTC uses CMake to generate build files. The best way to do so is to create a separate build directory for compilation:

mkdir FasTC
cd FasTC
git clone https://github.com/Mokosha/FasTC.git src
mkdir build
cd build
cmake ../src -DCMAKE_BUILD_TYPE=Release
make
Once you do this you will be able to run some examples.



Я тобто скачав zlib і за хвилину його скомпіляв, створилися libzlibstatic.a, libzlib.dll.a, libzlib.dll,
example64.exe, example.exe  і може там ще щось.

Що робити далі? я наприклад компіляю щось інше що начебто вимагає zlib і що мені робити?

От наприклад я скачаю ще щось що містить CMakeLists або щось, і шо?

Просто скомпіляти це не досить. Його треба додати у PATH (судячи з питання пан виндузятник). Робится це або відповідним скриптом (або руками).
якщо zlib встановився то його ліби будуть видимі для cmake та дозволять прилінкувате необхідне. Також там є додаткові cmake-файли які формують додаткові шляхи до ліб. Наприклад FindPVRTexLib.cmake.

Re: Задоволення залежностей програм і бібліотек від інших бібліотек і таке

Дякую!! FindPVRTexLib.cmake  -о как! Так, CMake це взагалі окрема тема, і яб, до речі, щось би по неї залюбки почітав, бажано б звичайно українською, або трохи менш бажано росїйською, або ну хоча б вже англійською, я вже то як-небуть...    Бо в CMake є довідка, але вона ніяка, майже ничого порозуміти неможна.  Дуже вже стиснута.

4

Re: Задоволення залежностей програм і бібліотек від інших бібліотек і таке

Найкраще що мені вдалось знайти по CMake: Craig Scott - Professional CMake: A Practical Guide

Подякували: P.Y., varkon, koala, leofun014

5

Re: Задоволення залежностей програм і бібліотек від інших бібліотек і таке

Дмитро-Чебурашка написав:

Дякую!! FindPVRTexLib.cmake  -о как! Так, CMake це взагалі окрема тема, і яб, до речі, щось би по неї залюбки почітав, бажано б звичайно українською, або трохи менш бажано росїйською, або ну хоча б вже англійською, я вже то як-небуть...    Бо в CMake є довідка, але вона ніяка, майже ничого порозуміти неможна.  Дуже вже стиснута.

Чому ніяка? Я користуюся виключно wiki та у складних сітуаціях SO.

Re: Задоволення залежностей програм і бібліотек від інших бібліотек і таке

Ніяка тому, що спочатку для розуміння суті потрібні явні готові приклади.
простий приклад, складніший приклад. Тут же (у доведці) нагромадження термінів, змінних
у яких будь-хто загубиться. Вона звичайно детальна і напевно дуже хороша саме як доведка для вже
підготовленого в темі, практика.

Спасибі величезне за посилання! Ось це так! Ціную дуже.
Читати і розбиратися, буду, звичайно напевно.

Так!! Ось мабуть, маса того що я і хотів, віличезний обєм, матеріалу!! Взагалі сверхкруто. А особливо книга.

Я ж раніше брав рядок, тицяв іого в гуглу, розбирав що значіть, але на такий супергарний матеріал я не потрапляв.

7

Re: Задоволення залежностей програм і бібліотек від інших бібліотек і таке

Дмитро-Чебурашка написав:

Так, CMake це взагалі окрема тема, майже нічого зрозуміти не можна.

Все не так і складно. CMake було придумано в першу чергу для простоти збірки,
під різні "платформи" і щоб не залежати від середовища (від IDE і компіляторів).

Сучасний світ C++ - це цілий зоопарк різних компіляторів і середовищ розробки.
Вася пише в Visual Studio (cl),
Петя пише в Codeblock (gcc),
а Маша вважає за краще використовувати QtCreator (mingw).

І ось тепер кожен з них хоче скачати з гітхаба якусь бібліотеку.
Але ж автор цієї бібліотеки не знає, які середовища використовуватимуть його користувачі.
Не буде ж він тепер реалізовувати свою бібліотеку для кожної можливої IDE окремо.

Потрібен якийсь універсальний сценарій збірки проекту.

Ви говорите CMake:
- Хочу проект віжуал студії!
- Не питання! - відповідає CMake, і через секунду у вас на руках готовий проект віжуал студії.

Або ви говорите:
- Хочу проект для QtCreator
- Не питання! - відповідає CMake, і через секунду у вас на руках проект для QtCreator

CMake сьогодні - стандарт де факто.
Універсальна мова сценаріїв збірки.

Ось тільки сам він нічого не збирає.
Він перетворює свій "універсальний проект" в проект цільової IDE.
Може побудувати проект для віжуал студії, або який інший, який забажаєте.

Є не поганий переклад статті щоправда, на рузькій

Прихований текст