Igor-84 Ответов: 2

Проблема с использованием lame encoder (C++ Builder)


Я пытаюсь скомпилировать найденный код.
Сначала я скачал архив с хромыми источниками отсюда: http://sourceforge.net/projects/lame/.
Затем скопировал хромой.ч-файл из папки lame-3.99.5/включить в папку с моим проектом.
Затем я включил заголовок:
# include <lame.h>

Когда я пытаюсь скомпилировать свой код, компилятор в этой строке:
lame_t lame = lame_init ();

выдает ошибку:

[ошибка ilink32] ошибка: неразрешенный внешний '_lame_init', на который ссылаются из

Мой вопрос: как я могу это исправить?
P. S.: Я не нашел ни одного DLL и любых .Либ в архиве.

enhzflep

Вы должны построить хромую библиотеку из источников - то есть вы должны создать статическую или динамическую хромую библиотеку самостоятельно. Затем вы можете включить файл .h и связать созданную вами библиотеку.
Беглый взгляд дает мне впечатление, что это была бы довольно неприятная работа, чтобы выполнить с строителем Борланда. С очень быстрого взгляда кажется, что нет никакой поддержки для вашего компилятора. MinGW-это нормально, как и MSVC, как и GCC. В установочном файле есть упоминание о компиляторе Borland C - хотя файл датирован 2001 годом, так что это не для Builder, а скорее для TurboC или TurboC++, я подозреваю. Возможно, вы сможете найти библиотеку dll и статическую библиотеку для связи с ней, чтобы использовать указанную библиотеку DLL. Но, честно говоря, я бы не ожидал, что это будет легкая или приятная дорога.

2 Ответов

Рейтинг:
6

Sergey Alexandrovich Kryukov

Я использовал lame некоторое время, пока не понял, что это просто не такая серьезная вещь. Я бы посоветовал использовать гораздо более продвинутую библиотеку с открытым исходным кодом: libavcodec или FFmpeg, которая включает в себя libavcodec:
http://en.wikipedia.org/wiki/Libavcodec[^],
http://libav.org/[^],
http://en.wikipedia.org/wiki/Ffmpeg[^],
http://ffmpeg.org/[^].

—СА


Рейтинг:
0

idle63

Я предлагаю вам просто установить lame в качестве кодека и использовать его таким образом "косвенно" с помощью win api.
1. Ваше приложение не зависело от хромой как кодек
2.) это работает


Sergey Alexandrovich Kryukov

Насколько мне известно, lame as codec не существует, это просто утилита или библиотечный код. Программное обеспечение, использующее lame, часто включает lame и использует его напрямую. Может быть, вы имели в виду что-то другое, так как первое утверждение выглядит противоречащим пункту № 1...
Кстати, я всегда советую Либаву, пожалуйста, смотрите мой ответ.
—СА

[no name]

Я буду искать ссылку на кодек (надеюсь, что он все еще существует). Я использовал Хромой кодек примерно до 4 лет, и оба были доступны: библиотека для ссылки и кодек для установки.

Sergey Alexandrovich Kryukov

Вы должны были получить его от третьей стороны. Lame team не предоставляет скомпилированный код из-за лицензионных ограничений. Использование запатентованной технологии позволяет им выставлять исходный код, но не предоставлять скомпилированный продукт. Существование таких патентованных абсурдов-это настоящий позор и морок для прогресса, как в области СМИ, так и во многих других областях.
—СА

[no name]

Может быть, это недостаток моего английского или что-то еще. Но acm-установка lame по-прежнему широко доступна в www. Можете ли вы просветить меня...и пожалуйста, используйте легкий английский язык.
Спасибо, Бруно

Sergey Alexandrovich Kryukov

Вы правы. Все, что я говорю, это: мой совет-переключиться на libav/FFmpeg. Если у вас есть сомнения по поводу любого из моих выражений на английском языке, пожалуйста, не стесняйтесь спрашивать. Мой английский также далек от совершенства, и я без колебаний обращаюсь за помощью к тем, кто может помочь. Кстати, характерная черта тех, кто говорит на родном английском языке: они склонны игнорировать такие проблемы и не будут предлагать никаких советов по ним, если вы явно не попросите о помощи...
—СА

[no name]

Я не знаю lib/FFMpeg, поэтому никаких комментариев с моей стороны, но из моего опыта на ваши ответы это будет обязательно хороший совет.

С моей точки зрения, ваш английский совершенен (по крайней мере, по сравнению с моим). Но в будущем я спрошу, есть ли у меня сомнения. Огромное спасибо. Бруно

Sergey Alexandrovich Kryukov

Отличный. Удачи тебе, Бруно.
—СА