Подтвердить что ты не робот

Компиляция libjpeg

Есть ли кто-нибудь, кто может включить libjpeg в какой-нибудь компилятор? Я пробовал все: Dev С++, VS10, CodeBlocks, скопировать заголовки и lib вручную, добавить с компоновщиком, но ничего. Сейчас я действительно уверен, что нет официального руководства по его компиляции в любом компиляторе. Я был бы очень рад, если бы кто-то мог предоставить учебник о том, как библиотека может быть скомпилирована в любом компиляторе. Заранее спасибо.

4b9b3361

Ответ 1

Вот как я создал libjpeg, используя MinGW в Windows:

1. Получите MinGW с MSYS

У меня есть копия http://sourceforge.net/projects/mingw/. Цитата из www.mingw.org:

MSYS - это набор утилит GNU, таких как bash, make, gawk и grep, которые позволяют создавать приложения и программы, которые зависят от традиционно используемых инструментов UNIX.

Нам понадобится запустить configure script, который поставляется с источниками libjpeg.


2. Получить источники libjpeg

Из http://www.ijg.org/ возьмите пакет формата Unix (Windows не будет работать с этой процедурой). Я взял версию jpeg_8d.


3. Подготовьте каталог здания

Я создал временный каталог с именем tmp в D:\, но вы можете выбрать все, что вам подходит. Дело в том, что это имя путей в MSYS. Поскольку это привносит некоторые * Unixity * в Windows, пути не могут использоваться в их первоначальной форме. В двух словах:

C:\path\to\file становится /c/path/to/file на земле MSYS, поэтому D:\tmp становится /d/tmp.

Декомпрессируйте источники libjpeg в D:\tmp, поэтому у вас есть каталог jpeg-8d.

Создайте каталог jpeg-build внутри D:\tmp, он сохранит встроенную библиотеку.

Теперь все готово для сборки.


4../configure, make, make install

Это мантра строительства на земле Unix. Необходимо добавить опцию для перенаправления процесса установки на D:\tmp\jpeg-build.

Запустите следующие команды в оболочке MSYS (также называемой оболочкой MinGW в меню запуска Windows):

cd /d/tmp/jpeg-8d
./configure --prefix=/d/tmp/jpeg-build
make
make install

В качестве дополнительного шага вы можете запустить make test для обеспечения безопасности.

Эти команды будут создавать как статические, так и общие версии libjpeg.


5. Возьмите товар, удалите временные файлы

Если все работает нормально, вы можете удалить каталог D:\tmp\jpeg-8d, но сохраните jpeg-build один. Он содержит:

  • a include, содержащий заголовки libjpeg. Вы можете переместить их в каталог заголовков компиляторов.
  • a lib, с файлом .a, чтобы перейти к компоновщику. Вы можете перенести их в каталог библиотеки компилятора.
  • a bin, содержащий библиотеку libjpeg shared libjpeg-8.dll и jpeg.
  • a share, содержащий man страницы для инструментов jpeg.

Теперь вы можете создать свою программу и связать ее с libjpeg, указав правильные пути include и library.


Подробные сведения о процессе сборки и установки libjpeg можно найти в install.txt внутри исходного пакета.

Надеюсь, это будет полезно.

Ответ 2

Чтобы скомпилировать libjpeg 9 в Visual Studio 2012, выполните следующие действия (после распаковки файла архива):

  • Загрузите файл WIN32.MAK (например, http://www.bvbcode.com/code/f2kivdrh-395674-down) и поместите копию в корневой код (возможно C:\jpeg-9, но это зависит от того, где вы разархивировали его). С этого момента я буду ссылаться на этот каталог как %jpegsrc%. Наличие этого файла важно; иначе шаг 3 приведет к ошибке.

  • В командной строке Visual Studio откройте %jpegsrc%:

    cd %jpegsrc%

  • В той же командной строке выполните следующее:

    NMAKE /f makefile.vc setup-v10

    Это создаст два решения Visual Studio 2010 в %jpegsrc%: jpeg.sln и apps.sln.

  • Откройте каждое решение в Visual Studio 2012. Каждый из вас предложит обновить все проекты до формата 2012 года. Нажмите "Обновить". Однажды я сделал это, подсказка не появилась. В этом случае щелкните правой кнопкой мыши по решению jpeg в обозревателе решений и выберите "Обновить проекты VС++...", которые будут вызывать одно и то же приглашение.

  • Сохраните и постройте каждое решение как обычно. (Вы должны построить решение jpeg.sln до apps.sln, так как последнее зависит от первого.)

Примечание. Этот процесс должен корректно работать в Visual Studio 2010 без обновления, но я его не тестировал.

Обновление: Этот метод все еще работает в Visual Studio 2015 для libjpeg-9a.

Ответ 3

Очень просто построить jpeg.lib с VS10.

Сначала загрузите исходный код libjpeg в формате zip. В то время, когда я пишу это, вы можете найти его здесь.

Затем извлеките содержимое zip файла на свой диск.

Затем откройте оболочку командной строки VS2010 (или вызовите vcvarsall.bat в любом окне командной строки), cd в исходный каталог jpeg (jpeg-8d в загрузке, упомянутом выше) и введите следующее:

nmake -f makefile.win setup-v10

Это создаст два решения VS2010 и кучу файлов проектов. Решения:

  • jpeg.sln, который строит jpeg.lib
  • apps.sln, который создает примеры приложений.

Удачи!

Ответ 4

Если вам нужен режим отладки, а также в MSVC. Следуйте за методом AthanasiusOfAlex, создайте выпуск, а затем:

  • Щелкните правой кнопкой мыши проект и выберите свойства в самом внизу
  • Нажмите на диспетчер конфигурации и на активное решение выпадающий список конфигурации -new-
  • Задайте имя для отладки и включения выпадающий список настроек конфигурации копирования от выпуска и нажмите "ОК"
  • Закройте диалоговое окно, перейдите к общим настройкам и в разделе "Цель" Имя добавляет d в конец, чтобы оно выглядело так: $(ProjectName) d
  • В раскрывающемся списке "Оптимизация всей программы" выберите "Нет". Оптимизация всей программы.
  • Затем нажмите на C/С++ в свойствах конфигурации слева и в раскрывающемся списке Формат отладки выберите C7-совместимый (/Z7)
  • В разделе оптимизации выберите значение отключено и выберите "НЕТ" для "Оптимизация с использованием" Оптимизация с помощью оптоволокна "и" Оптимизация всей программы ".
  • В препроцессоре, определениях препроцессора, нажмите на редактирование и используйте следующее: WIN32 _ОТЛАЖИВАТЬ ОТЛАЖИВАТЬ _LIB _CRT_SECURE_NO_WARNINGS
  • При генерации кода в библиотеке времени исполнения выберите многопоточную DLL (/MDd) Debug

Сборка и все готово!