Code::Blocks

Нечто вроде содержания:

Граждане почему-то хотят использовать Code::Blocks;

да ещё и под Windows,
Почему — для меня загадка, быть может, логотипы похожи,
но некоторую инструкцию по оседланию этого зверя в плане «как в этом использовать libpng (и, возможно, что-то ещё)» я сделал. Так получилось.

Установка

Я предполагаю, что установить C::B у вас получилось, что вы используете MinGW/MSYS2 в качестве компилятора (либо его беря из поставки самого C::B, либо ставя самостоятельно).

Если этого не получилось — пишите письма и обрящете.

Давайте уже libpng натягивать, чего кота-то лохматить?

Слушаюсь и повинуюсь:

Нам, значит, нужно где-то взять собранную версию libpng (иначе зачем вы вообще это читаете? Если вы можете собрать libpng без помощи извне, то вам, наверное, скучно тут). Я предлагаю репозиторий MSYS2. libpng для 64-битных систем (у вас 32-битная? Вы, думаю, справитесь с модификацией ссылки; иначе вам, наверное, сложно тут), нам нужен сам пакет и его зависимости (база MSYS2, как сказано выше, у вас уже предполагается имеющейся). На момент написания этого (май 2020) нам нужны

  1. libpng 1.6.37
  2. zlib 1.2.11

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

проект у нас консольный; но это не точно и, вообще-то, необязательно);

добавляем папку «include», появившуюся в ходе распаковки, в список поиска препроцессором

говорим компоновщику «давай, замешай нам в создаваемое libpng да zlib: зря мы их качали что-ли?»

тести-—>
—>-руем. Мда. </em>.

Отступление #1

Zlib — это библиотека, которая реализует семейство алгоритмов компрессии (сжатия) данных, основанных на придуманной Lempel и Ziv (там ещё Welch помогал) стратегии этого самого сжатия (компрессии) и её развитиях. Охх, PKWare в своё время прямо патенты на свою интеллектуальность брали, развивая(сь?): запустишь, бывало, pkzip и читаешь

PKZIP(R) Version 6.0 FAST!  Compression Utility
Copyright 1989-2002 PKWARE Inc. All Rights Reserved.  Shareware Version
PKZIP Reg. U.S. Pat. and Tm. Off.  Patent No. 5,051,745.
Или, там, «Patent Pending»…

Почему файл с библиотекой (а это видно из картинки, которая до этого показана, если читать нарисованное) называется libz.a, а не zlib.a?

«Таковы древние и тёмные традиции Un*x (а то и чего похуже)! Сие смертным знать вполне дано, если они помнят, что “-lNAME” у компиляторов /“Компоновщиков!” — раздался глас свыше/ означает «давайте уже найдём файл libNAME.a (или libNAME.s…, но об этом — в следующий раз) в списке каталогов, где обычно (или необычно, что символизирует -L) мы ищем, и скомпонуем его. Отредактируем, то есть, связи (или… впрочем, говорю же: в следующий раз)».

Контр-(на)ступление #2

«А шо же делать, если не С::B и не MSYS2? Сам-то чем дышишь, голуба

Без С::B, конечно, трудно; дышать, а особенно — сглатывать.

Не MSYS2? Конечно, Digital Mars. Почему? Всё просто: Mars needs women. Но Open Watcom настолько навевает воспоминания о DOS4/GW Professional Protected Mode Run-time, что прямо стоять совершенно невозможно: хочется сесть и снова (и не/медленно) зачитать спецификацию, занюхнув Шульманом.

А вообще, ассемблируйте по-старинке. Крис завещал…