8-900-374-94-44
[email protected]
Slide Image
Меню

Nasm подключение динамических библиотек: Расширенный ассемблер: NASM

Содержание

Использование библиотек и компонентов в проектах C++

  • Статья
  • Чтение занимает 5 мин

В проектах C++ часто требуется вызывать функции или обращаться к данным в двоичных файлах, таких как статические библиотеки (LIB-файлы), библиотеки DLL, компоненты среды выполнения Windows, компоненты COM или сборки .NET. В этих случаях необходимо настроить проект таким образом, чтобы он мог находить нужные двоичные файлы во время сборки. Конкретный способ сделать это зависит от типа вашего проекта, типа двоичного файла, а также от того, был ли этот двоичный файл собран в том же решении, что и ваш проект.

Использование скачанных библиотек с помощью vcpkg

Если вы хотите использовать скачанную библиотеку с помощью диспетчера пакетов

vcpkg, то приведенные ниже инструкции можно пропустить. Дополнительные сведения см. в разделе vcpkg.io.

Если проект статической библиотеки был создан в том же решении:

  1. #include файлы заголовков для статической библиотеки с помощью кавычек. В типовом решении путь начинается с ../<library project name>. При поиске вы можете использовать предложения технологии IntelliSense.
  2. Добавьте ссылку на проект статической библиотеки. Щелкните правой кнопкой мыши элемент Ссылки в узле проекта приложения в обозревателе решений и выберите Добавить ссылку.

Если статическая библиотека не входит в состав решения:

  1. Щелкните правой кнопкой мыши узел проекта приложения в обозревателе решений и выберите Свойства.
  2. На странице свойств Каталоги VC++ добавьте в раздел
    Пути библиотек
    путь к каталогу, который содержит LIB-файл. Затем добавьте в раздел Включаемые каталоги путь к файлам заголовков библиотеки.
  3. На странице свойств Входные данные компоновщика > добавьте имя LIB-файла в раздел Дополнительные зависимости.

Если библиотека DLL была собрана в рамках того же решения, что и приложение, выполните те же действия, что и для статической библиотеки.

Если библиотека DLL не входит в состав решения приложения, вам потребуются DLL-файл, заголовки с прототипами для экспортируемых функций и классов, а также LIB-файл, содержащий необходимую для компоновки информацию.

  1. Скопируйте DLL-файл в папку выходных данных проекта или другую папку, которая задана в качестве стандартной для поиска библиотек DLL в Windows. Дополнительные сведения см. в разделе Порядок поиска динамической библиотеки.
  2. Выполните шаги с 1 по 3 для статических библиотек, чтобы задать пути к заголовкам и LIB-файлу.

Если в собственном приложении C++ требуется использовать COM-объект и этот объект зарегистрирован, вам достаточно вызвать функцию CoCreateInstance и передать в нее CLSID объекта. Система выполнит поиск объекта в реестре Windows и загрузит его. В проекте C++/CLI COM-объект можно использовать таким же образом. Кроме того, он может использовать его, добавив на него ссылку из списка COM Add References (Добавление ссылок > COM ) и используя ее с помощью вызываемой оболочки среды выполнения.

Сборки .NET с компонентами среды выполнения Windows

В проектах универсальной платформы Windows (UWP) или C++/CLI для использования сборок .NET или компонентов среды выполнения Windows можно добавить ссылку на сборку или компонент. В узле Ссылки проекта универсальной платформы Windows (UWP) или C++/CLI представлены ссылки на часто используемые компоненты. Щелкните правой кнопкой мыши узел Ссылки в Обозревателе решений, чтобы открыть диспетчер ссылок и просмотреть доступные в системе компоненты. Нажмите кнопку Обзор, чтобы перейти к папке, в которой находится нужный вам пользовательский компонент. Поскольку сборки .NET и компоненты среды выполнения Windows содержат встроенные сведения о типах, для просмотра их методов и классов можно щелкнуть правой кнопкой мыши и выбрать команду Просмотреть в обозревателе объектов.

Свойства ссылки

Каждый тип ссылки имеет свойства. Свойства можно просмотреть, выбрав ссылку в обозревателе решений и нажав клавиши Alt + ВВОД. Также можно щелкнуть ссылку правой кнопкой мыши и выбрать пункт Свойства. Одни свойства доступны только для чтения, другие можно изменять. Тем не менее обычно эти свойства не требуется изменять вручную.

Свойства ссылки ActiveX

Свойства ссылки ActiveX доступны только для компонентов COM. Данные свойства отображаются только тогда, когда в панели Ссылки выбран компонент COM. Эти свойства нельзя изменить.

  • Управление полным путем

    Отображает путь к каталогу элемента управления, на который указывает ссылка.

  • GUID элемента управления

    Отображает GUID для элемента управления ActiveX.

  • Версия элемента управления

    Отображает версию элемента управления ActiveX, на который указывает ссылка.

  • Имя библиотеки типов

    Отображает имя библиотеки типов, на которую указывает ссылка.

  • Средство программы-оболочки

    Отображает средство, которое используется для создания сборки взаимодействия из указанной библиотеки COM или элемента управления ActiveX.

Свойства ссылки на сборку (C++/CLI)

Свойства ссылки на сборку доступны только для ссылок на сборки .NET Framework в проектах C++/CLI. Данные свойства отображаются только тогда, когда в панели Ссылки выбрана сборка .NET Framework. Эти свойства нельзя изменить.

Свойства сборки

Следующие свойства доступны для различных типов ссылок. Они позволяют задавать способ построения со ссылками.

  • Копировать локальные

    Указывает, следует ли автоматически копировать сборку, на которую указывает ссылка, в целевое расположение во время сборки.

  • Копировать локальные вспомогательные сборки (C++/CLI)

    Указывает, следует ли автоматически копировать вспомогательные сборки ссылочной сборки в целевое расположение во время сборки. Используется, только если для параметра Копировать локальные задано значение true .

  • Выходные данные ссылочной сборки

    Указывает, что эта сборка используется в процессе сборки. true означает, что эта сборка используется в командной строке компилятора во время выполнения сборки.

Свойства ссылок проектов на проекты

Следующие свойства определяют ссылку проекта на проект из проекта, выбранного в панели Ссылки, на другой проект в том же решении.

Дополнительные сведения см. в статье Управление ссылками в проекте.

  • Компоновать зависимости библиотек

    Если это свойство имеет значение True, система проектов установит в зависимом проекте связь с LIB-файлами, создаваемыми независимым проектом. Обычно устанавливается значение True.

  • Идентификатор проекта

    Уникальный идентификатор независимого проекта. Значение свойства — это GUID внутренней системы, который невозможно изменить.

  • Использовать входные данные зависимостей библиотек

    Если это свойство имеет значение False, система проектов не установит в зависимом проекте связь с OBJ-файлами для библиотеки, созданной независимым проектом. Таким образом, это значение отключает инкрементную компоновку. Обычно указывается значение

    False, так как при наличии множества независимых проектов сборка приложения может занять длительное время.

Ссылочные свойства только для чтения (COM & .NET)

Следующие свойства существуют в ссылках на компоненты COM и сборки .NET, и их нельзя изменить.

  • Имя сборки

    Отображает имя сборки для сборки, на которую указывает ссылка.

  • Язык и региональные параметры

    Отображает язык и региональные параметры выбранной ссылки.

  • Описание

    Отображает описание выбранной ссылки.

  • Полный путь

    Отображает путь к каталогу сборки, на которую указывает ссылка.

  • Удостоверение

    Для сборок .NET Framework отображает полный путь. Для компонентов COM отображает GUID.

  • Label

    Отображает метку ссылки.

  • Name

    Отображает имя ссылки.

  • Токен открытого ключа

    Отображает токен открытого ключа для идентификации сборки, на которую указывает ссылка.

  • Строгое имя

    true , если сборка, на которую указывает ссылка, имеет строгое имя. Сборка со строгим именем имеет уникальную версию.

  • Version

    Отображает версию сборки, на которую указывает ссылка.

См. также

Справочник по страницам свойств проекта C++
Настройка компилятора C++ и свойства сборки в Visual Studio

анализатор спектра сигналов | ООО «АСМ Тесты и измерения»

Н О В О С Т И
MEMS акселерометры ASM 18X внесены в Госреестр СИ

Наша компания рада сообщить, что MEMS акселерометры типа ASM 18X компании YMC PIEZOTRONICS INC, внесены в государственный реестр средств измерений. Номер записи в Государственном реестре средств измерений: 88353-23.


Калибраторы Norsonic Nor125 внесены в Госреестр СИ

Наша компания рада сообщить, что акустические калибраторы Nor1255 и Nor1256 компании Norsonic, внесены в государственный реестр средств измерений. Номер записи в Государственном реестре средств измерений: 88287-23.


Шумомеры Norsonic Nor150 и Nor140 внесены в Госреестр СИ

Наша компания рада сообщить, что шумомеры Nor150 и Nor140 компании Norsonic, внесены в государственный реестр средств измерений. Номер записи в Государственном реестре средств измерений: 88288-23.


Приглашаем на семинар «Современные решения в области виброакустических измерений»

Компания ООО «АСМ Тесты и измерения» приглашает Вас принять участие в семинаре «Современные решения в области виброакустических измерений».

Семинары будут проходить в следующих городах:

Москва, 22.03.2023

Санкт-Петербург, 29.03.2023

Нижний Новгород, 04.04.2023

Казань, 06.04.2023

Челябинск, 12.04.2023


Акустические решетки российского производства

Рады Вам представить системы акустической визуализации российского производства. Три конфигурации: портативная, стационарная, переносная


Новые усилители мощности Aigtek

Компания Xi’an Aigtek Electronic Technology Co. , Ltd объявила о широкомасштабном обновлении линейки своих усилителей мощности.


Акселерометры ASM 12X и ASM 22X внесены в Госреестр СИ

Наша компания рада сообщить, что акселерометры типа ASM 12X и ASM 22X компании YMC PIEZOTRONICS INC, внесены в государственный реестр средств измерений. Номер записи в Государственном реестре средств измерений: 88132-23.


Ищем нового сотрудника!

Наша компания ищет нового сотрудника на должность:

“Менеджер по продажам виброиспытательного оборудования”


Горизонтальные столы DYN-ST от Dynalabs

В некоторых случаях недостаточно иметь возможность проводить испытания по вертикальной оси. Поэтому Dynalabs начала производить скользящие столы, чтобы инженеры получили возможность проводить испытания в горизонтальном направлении. Горизонтальный стол позволяет проводить испытания на горизонтальную осевую вибрацию.


Новый миниатюрный вибростенд DYN-PM-10 от Dynalabs

Новый компактный и легкий электродинамический модальный вибростенд, разработанный с использованием технологии постоянного магнита. Этот вибростенд имеет номинальное усилие до 10 Н.


Новинки от YMC Piezotronics, Inc.

Компания YMC Piezotronics, Inc. анонсировала два новых прибора: Коммутационный короб и кондиционирующий усилитель 3834T


YMC PIEZOTRONICS объявила о выпуске нового вибростенда SVT-08

Вибростенд SVT-08 является компактным вибростендом с постоянным магнитом. Благодаря большой номинальной силе (112Н) вибростенд SVT-08 способен возбуждать механические колебания с большими ускорениями (до 70 g) даже объектов с относительно большой массой (до 2 кг).


В Роспотребнадзоре назвали самые шумные российские города

Заместитель руководителя управления санитарного надзора Роспотребнадзора Андрей Гуськов рассказал в беседе с RT о российских городах, в которых наиболее остро стоит проблема шума.


Гидрофоны серии TC40ХХ внесены в Госреестр СИ

Уважаемые коллеги! Рады Вам сообщить что гидрофоны серии TC40XX компании датской компании Teledyne RESON внесены в Госреестр Средств Измерений.


Модули IOLITE и KRYPTON внесены в Госреестр СИ.

Рады Вам сообщить что аналого-цифровые модули преобразования напряжения IOLITE, а также модули преобразования напряжения KRYPTON словенской компании DEWESOFT внесены в Госреестр Средств Измерений.


Лазерные виброметры

Наша компания продолжает искать замену приборам ушедших с российского рынка западных компаний. Представляем Вам лазерные виброметры аналоги виброметров от компании Polytec. Наш новый китайский партнер производит четыре лазерных виброметра аналогичных по характеристикам виброметрам Polytec.


Самое время покупать Китайские приборы!

Уважаемые коллеги сейчас происходит удивительный рост курса рубля по отношению ко всем валютам мира. Рубль стал самой сильной валютой за последний месяц и укрепился на 11% по отношению к доллару. Но этот рассказ не об экономике, а о технике. Поэтому если кратко, то это значит, что зарубежное оборудование становится все дешевле и дешевле. На фоне санкций стало сложно или практически невозможно привозить приборы из США и Европы, российские приборы и датчики в связи с ростом курса стали значительно дороже и только китайское оборудование сейчас в самом выгодном положении, цена на него падает, нет проблем с его доставкой и самое главное оно по качеству ничем не уступает европейским, американским и российским аналогам.


Наш новый партнер ECON

Наша компания продолжает реализовывать процесс замещения европейских и американских производителей на производителей из Китая. Новым партнером нашей компании стала компания ECON.


Наш новый партнер Dynatronic Corporation Ltd.

В марте мы подписали дистрибьюторское соглашение с Китайской компанией Dynatronic Corporation Ltd, который предлагает универсальные решения позволяющие анализировать различные физические характеристики.


Модуль SIRIUS MIC200 с поддержкой поляризации напряжения 200 В

Наш партнер, компания Dewesoft анонсировала новый усилитель в линейке продуктов SIRIUS с прямым входом для 200-вольтовых микрофонов с внешней поляризацией.


Сервисный центр

Сервисное обслуживание и ремонт измерительных приборов Bruel & Kjaer, Dewesoft, OnoSokki, LDS


Распродажа оборудования со склада в Москве

Приглашаем на работу

ИДЕТ РЕГИСТРАЦИЯ НА СЕМИНАР

Более старые >>

gcc — невозможно связать сборку nasm с функцией libc (требуется динамическая релокация R_X86_64_PC32)

Задавать вопрос

спросил

Изменено 5 лет, 7 месяцев назад

Просмотрено 879 раз

Из учебника по nasm здесь я получил следующий код для программы сборки:

 global main
    внешние путы
    раздел . текст
основной:
    мов рди, сообщение
    колл ставит
    мов ракс, 0
    рет
сообщение:
    db "Привет, мир", 0
 

Я собираю его с помощью nasm -felf64 hola.asm

Однако мне не удалось связать получившийся файл hola.o.

Я пытался (согласно руководству) запустить gcc hola.o , но это приводит к следующей ошибке:

/usr/local/bin/ld: ошибка: hola.o: требуется динамическая релокация R_X86_64_PC32 против «помещений», которая может переполниться во время выполнения; перекомпилировать с -fPIC

collect2: ошибка: ld вернул 1 статус выхода

передача -fPIC в не помогает, как и -Wl,-I/lib/ld-2.25.so .

Мои попытки связать напрямую с ld не увенчались успехом, я думаю, потому что я упускаю то, что на самом деле определяет символ _start , что приводит к ошибке seg, когда я запускаю полученный исполняемый файл.

Я также пытался добавить стандартную версию , как было предложено в разделяемой библиотеке R_X86_64_PC32, но это тоже не работает.

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

Как связать файл сборки nasm, чтобы он мог вызывать функцию в libc на x86_64 linux?

  • gcc
  • nasm
  • ld

Я смог заставить это работать, изменив 9Вызов 0017 ставит

на вызов ставит wrt ..plt .

Я понял это после прочтения раздела 9.2.5 документации nasm: http://www.nasm.us/doc/nasmdoc9.html#section-9.2.5.

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Информация о конкретной платформе

Содержание

  • 1 Unix-подобный
    • 1. 1 Расширенная конфигурация связи
    • 1.2 БСД
    • 1.3 (открытый)Солярис
    • 1.4 Дарвин (Mac OS X, iPhone)
  • 2 ДОС
  • 3 ОС/2
  • 4 окна
    • 4.1 Собственная компиляция Windows с использованием MinGW или MinGW-w64
      • 4.1.1 Собственная компиляция Windows с использованием MSYS2
    • 4.2 Компилятор Microsoft Visual C++ или Intel C++ для Windows
      • 4.2.1 Связывание с FFmpeg с помощью Microsoft Visual C++
    • 4.3 Кросс-компиляция для Windows с Linux
    • 4.4 Компиляция под Cygwin
    • 4.5 Кросскомпиляция для Windows под Cygwin

Некоторые части FFmpeg не могут быть собраны с версией 2.15 GNU ассемблер, который до сих пор предоставляется несколькими дистрибутивами AMD64. К убедитесь, что ваш компилятор действительно использует требуемую версию газа после обновления binutils запустите:

 $(gcc -print-prog-name=as) --версия
 

Если нет, то вам следует установить другой компилятор, который не имеет жестко запрограммированный путь к газу. В худшем случае передать --disable-asm настроить.

1.1 Расширенная конфигурация связывания

Если вы скомпилировали библиотеки FFmpeg статически и хотите использовать их для создать свою собственную общую библиотеку, вам может потребоваться принудительная поддержка PIC (с --enable-pic во время настройки FFmpeg) и добавьте следующую опцию в ваш проект LDFLAGS:

 -Wl,-Bсимволический
 

Если для вашей целевой платформы требуются независимые от позиции двоичные файлы, вам следует передайте правильный флаг связывания (например, -pie ) в --extra-ldexeflags .

1.2 BSD

BSD make не будет собирать FFmpeg, вам необходимо установить и использовать GNU Make ( gmake ).

1.3 (Open)Solaris

GNU Make требуется для сборки FFmpeg, поэтому вам нужно вызвать ( gmake ), стандартный Solaris Make не подойдет. При сборке с не-с99 фронтенд (gcc, generic suncc) добавить либо --extra-libs=/usr/lib/values-xpg6. o или --extra-libs=/usr/lib/64/values-xpg6.o в параметры конфигурации поскольку libc по умолчанию не совместима с c99. Зонды, выполненные configure может вызвать исключение, ведущее к смерти самого configure из-за ошибки в системной оболочке. Просто вызовите другую оболочку, например bash напрямую, чтобы обойти это:

 баш ./настроить
 

1.4 Дарвин (Mac OS X, iPhone)

Инструментарий, поставляемый с Xcode, достаточен для создания базового неускоренный код.

Для Mac OS X на PowerPC или ARM (iPhone) требуется препроцессор от https://github.com/FFmpeg/gas-preprocessor или https://github.com/yuvi/gas-preprocessor (в настоящее время устарел) для создания оптимизированного сборочные функции. Поместите сценарий Perl куда-нибудь в вашем PATH, конфигурация FFmpeg подберет его автоматически.

Mac OS X на платформах amd64 и x86 требует nasm для сборки большинства оптимизированные функции сборки. Финк, Gentoo Префикс, доморощенный или MacPorts могут легко предоставить его.

Использование кросс-компилятора предпочтительнее по разным причинам. http://www.delorie.com/howto/djgpp/linux-x-djgpp.html

Информацию о компиляции FFmpeg в OS/2 см. http://www.edm2.com/index.php/FFmpeg.

Чтобы получить справку и инструкции по сборке FFmpeg под Windows, см. справочный форум FFmpeg для Windows по адресу http://ffmpeg.zeranoe.com/forum/.

4.1 Собственная компиляция Windows с использованием MinGW или MinGW-w64

FFmpeg может быть собран для исходной работы в Windows с использованием MinGW-w64 набор инструментов. Установите последние версии MSYS2 и MinGW-w64 с http://msys2.github.io/ и/или http://mingw-w64.sourceforge.net/. Вы можете найти подробные инструкции по установке в разделе загрузок и FAQ.

Примечания:

  • Сборка для среды MSYS не рекомендуется, MSYS2 обеспечивает полную Среда MinGW-w64 через mingw64_shell.bat или mingw32_shell.bat , который следует использовать вместо среды предоставлено msys2_shell. bat .
  • Сборку с использованием MSYS2 можно ускорить, отключив неявные правила в Makefile, вызвав make -r вместо обычного make . Этот ускорение близко к несуществующему для обычных одноразовых сборок и только заметно при запуске make во второй раз (например, во время сделать установить ).
  • Для компиляции FFplay у вас должна быть библиотека разработки MinGW SDL и pkg-config установлены.
  • Используя ./configure --enable-shared при настройке FFmpeg, вы можете собрать библиотеки FFmpeg (например, libavutil, libavcodec, libavformat) в виде DLL.
4.1.1 Собственная компиляция Windows с использованием MSYS2

Среда MSYS2 MinGW-w64 предоставляет готовые наборы инструментов и зависимости через пакман .

Обязательно используйте mingw64_shell.bat или mingw32_shell.bat , чтобы иметь правильная среда MinGW-w64. Установка по умолчанию предоставляет ярлыки для их под MinGW-w64 Win64 Shell и MinGW-w64 Win32 Shell .

 # обычные пакеты msys2
pacman -S сделать pkgconf diffutils
# пакеты и цепочки инструментов mingw-w64
pacman -S mingw-w64-x86_64-nasm mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2
 

Чтобы установить 32 бита, замените x86_64 с i686 в приведенной выше команде.

4.2 Компилятор Microsoft Visual C++ или Intel C++ для Windows

FFmpeg можно собрать с помощью MSVC 2013 или более поздней версии.

Вам потребуются следующие предварительные условия:

  • MSYS2
  • НАСМ (Также доступно через менеджер пакетов MSYS2.)

Чтобы настроить правильную среду в MSYS2, вам нужно запустить msys_shell.bat из командную строку Visual Studio или компилятора Intel.

Поместите yasm.exe где-нибудь в PATH .

Затем убедитесь, что любые другие заголовочные файлы и библиотеки, которые вы хотите использовать, такие как zlib, находится в месте, которое может видеть компилятор. Сделайте это, изменив LIB и ВКЛЮЧИТЕ переменные среды , чтобы включить в стиле Windows пути к этим каталогам. Как вариант, можно попробовать использовать --extra-cflags / --extra-ldflags настроить параметры.

Наконец, запустите:

 Для MSVC:
./configure --toolchain=msvc
Для ИКЛ:
./configure --toolchain=icl
делать
сделать установку
 

Если вы хотите скомпилировать разделяемые библиотеки, добавьте --enable-shared в свой настроить параметры. Обратите внимание, что из-за того, как MSVC и ICL обрабатывают импорт DLL и экспорта, вы не можете одновременно компилировать статические и разделяемые библиотеки, и включение общих библиотек автоматически отключит статические.

Примечания:

4.2.1 Связывание с FFmpeg с помощью Microsoft Visual C++

Если вы планируете связываться со статическими библиотеками, созданными MSVC, вам потребуется чтобы убедиться, что для Runtime Library установлено значение Многопоточность (/MT) в настройках вашего проекта.

Вам нужно будет определить встроенный для чего-то, что понимает MSVC:

 #define встроенный __inline
 

Также обратите внимание, что, как указано в Microsoft Visual C++ , вам потребуется совместимый с MSVC файл inttypes.h.

Если вы планируете использовать библиотеки импорта, созданные dlltool, вы должны набор Ссылки с по Нет (/OPT:NOREF) при оптимизации компоновщика параметры, в противном случае результирующие двоичные файлы не будут работать во время выполнения. Это не требуется при использовании библиотек импорта, сгенерированных lib.exe . Об этой проблеме сообщается вверх по течению на http://sourceware.org/bugzilla/show_bug.cgi?id=12633.

Для создания библиотек импорта, которые работают с параметром /OPT:REF . (который включен по умолчанию в режиме выпуска), выполните следующие действия:

  1. Откройте командную строку Visual Studio .

    В качестве альтернативы в обычном приглашении командной строки вызовите vcvars32.bat который устанавливает переменные среды для инструментов Visual C++ (стандартное расположение для этого файла что-то вроде C:\Program Files (x86_\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat ).

  2. Войдите в каталог bin , в котором находятся созданные файлы LIB и DLL. хранятся.
  3. Создать новые библиотеки импорта с lib.exe :
     библиотека /machine:i386 /def:..\lib\foo-version.def /out:foo.lib
     

    Замените foo-version и foo соответствующими именами библиотек.

4.3 Кросс-компиляция для Windows с Linux

Необходимо использовать инструменты кросс-компиляции MinGW, доступные по адресу http://www.mingw.org/.

Затем настройте FFmpeg со следующими параметрами:

 ./configure --target-os=mingw32 --cross-prefix=i386-mingw32msvc-
 

(вы можете изменить кросс-префикс в соответствии с префиксом, выбранным для инструменты MinGW).

Тогда вы можете легко протестировать FFmpeg с помощью Wine.

4.4 Компиляция под Cygwin

Используйте Cygwin 1.7.x т.к. в устаревших версиях Cygwin 1.5.x отсутствует llrint() в своей библиотеке C.

Установите Cygwin со всеми «базовыми» пакетами, а также следующие «Devel»:

 binutils, gcc4-core, make, git, mingw-runtime, texinfo
 

Для запуска FATE вам также потребуются следующие пакеты «Utils»:

 диффитилс
 

Если вы хотите собрать FFmpeg с дополнительными библиотеками, скачайте Cygwin Пакеты «Devel» для Ogg и Vorbis из любого репозитория пакетов Cygwin:

 libogg-devel, libvorbis-devel
 

Эти пакеты библиотек доступны только из Порты Cygwin:

 yasm, libSDL-devel, libgsm-devel, libmp3lame-devel,
speex-devel, libtheora-devel, libxvidcore-devel
 

Для x264 рекомендуется собирать его из исходного кода, так как он тоже развивается быстро обновлять порты Cygwin.

4.5 Кросскомпиляция для Windows под Cygwin

С помощью Cygwin можно создавать двоичные файлы Windows, которым не требуется cygwin1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *