FreeType + VC++/gcc
От: nosuchip  
Дата: 19.05.09 00:00
Оценка:
Есть freetype 2.3.6, взятый со странички GTK++, внутри архива помимо инклюдов есть dll и библиотека линковки к ней (libfreetype.dll.a freetype6.dll).
Пишу тестовый файлик вида:

#include "ft2build.h"
#include "freetype.h"

int main(void)
{
    FT_Library library;
    FT_Init_FreeType(&library);

    FT_Done_FreeType(library);

    return 0;
}


Создаю проект, консольное приложение win32, в настройках проекта задаю пути к include и lib, добавляю линковку с libfreetype.dll.a, к полученному экзешнику подкладываю freetype6.dll. Запускаю — ошибка еще до входа в main(). Динамически, при этом, библиотека подключается, функции импортируются.

Собираю gcc (gcc version 3.4.5 (mingw-vista special v3)): e:/mingw/gcc main.cpp -Iinclude -Iinclude/freetype -Llib -lfreetype.dll -o ft_test.exe. Подкладываю либу, запускаю — всё отлично.

Если собираю freetype из исходников — всё работает и подключается в стдийных проектах.

Уважаемая редакция, в чем подземный стук?
freetype visual studio gcc
Re: FreeType + VC++/gcc
От: nosuchip  
Дата: 19.05.09 00:05
Оценка:
Поправка: ошибка при вызове первой же функции freetype'а: FT_Init_FreeType
Re: FreeType + VC++/gcc
От: Tujh Голландия  
Дата: 19.05.09 03:32
Оценка:
Здравствуйте, nosuchip, Вы писали:

N>внутри архива помимо инклюдов есть библиотека линковки к ней libfreetype.dll.a

N>в настройках проекта задаю пути к include и lib, добавляю линковку с libfreetype.dll.a
N>Собираю gcc. Подкладываю либу, запускаю — всё отлично.
N>Если собираю freetype из исходников — всё работает и подключается в стдийных проектах.
N>Уважаемая редакция, в чем подземный стук?
В том, что студия наверное не понимает формат .a файлов, это формат gcc. Но тогда странно, что она вообще что-либо слинковала. Для студии нужды .lib файлы
Re[2]: FreeType + VC++/gcc
От: Anatoliy.Sviridenkov Россия  
Дата: 19.05.09 04:11
Оценка:
Здравствуйте,

N>>Уважаемая редакция, в чем подземный стук?

T>В том, что студия наверное не понимает формат .a файлов, это формат gcc. Но тогда странно, что она вообще что-либо слинковала. Для студии нужды .lib файлы

Да нет на самом деле, студия прекрасно понимает и .a файлы.
У меня нет опыта с freetype и я могу ошибаться, но как подсказывает опыт проблема в несовпадении формата функций. Скорее всего виновата стандартная библиотека и если поиграться в настройках всего проекта ключиками /MT /MD и всеми другими похожими на них, то можно заставить работать и имеющуюся либу. Но гораздо лучше пересобрать ее под себя из исходников с нужными параметрами.
Re[3]: FreeType + VC++/gcc
От: nosuchip  
Дата: 19.05.09 06:26
Оценка:
Здравствуйте, Anatoliy.Sviridenkov, Вы писали:

AS>Здравствуйте,


N>>>Уважаемая редакция, в чем подземный стук?

T>>В том, что студия наверное не понимает формат .a файлов, это формат gcc. Но тогда странно, что она вообще что-либо слинковала. Для студии нужды .lib файлы

AS>Да нет на самом деле, студия прекрасно понимает и .a файлы.

AS>У меня нет опыта с freetype и я могу ошибаться, но как подсказывает опыт проблема в несовпадении формата функций. Скорее всего виновата стандартная библиотека и если поиграться в настройках всего проекта ключиками /MT /MD и всеми другими похожими на них, то можно заставить работать и имеющуюся либу. Но гораздо лучше пересобрать ее под себя из исходников с нужными параметрами.

Вот этого как раз делать очнб не хочется: дело в том, что freetype мне нужен для cairo, а последняя требует fontconfig, который от фритайпа и зависит. Пересобрать последний под виндами — достаточно нетривиальная задача, по-крайней мере ни одно из описаний собрки его под виндами не сработало.
Re[3]: FreeType + VC++/gcc
От: nosuchip  
Дата: 19.05.09 06:56
Оценка:
Здравствуйте, Anatoliy.Sviridenkov, Вы писали:

AS>Здравствуйте,


N>>>Уважаемая редакция, в чем подземный стук?

T>>В том, что студия наверное не понимает формат .a файлов, это формат gcc. Но тогда странно, что она вообще что-либо слинковала. Для студии нужды .lib файлы

AS>Да нет на самом деле, студия прекрасно понимает и .a файлы.

AS>У меня нет опыта с freetype и я могу ошибаться, но как подсказывает опыт проблема в несовпадении формата функций.

Сейчас проверил (понимаю слабость такой аналогии) по аналогии с собранной cairo, к ней так же поставляется dll и либа в таком же формате. Отлично работает. Какой-то заты получается именно во фритайпе =(
Re[4]: FreeType + VC++/gcc
От: nosuchip  
Дата: 19.05.09 07:10
Оценка:
Анатолий оказался прав, проблема в несовпадении формата "класической" lib-библиотеки (freetype.lib) и той библиотеки импорта, что поставляется в качестве девелоперской на страничке GTK++ (libfreetype.dll.a)

Еще не пробовал, но подозреваю, что просто собрав freetype из исходников с соблюдением имени выходного файла (freetype6.dll, именно такую библиотеку хочется fontconfig) и предоставление корректной для студии либы проблема решится.

Быстрое решение: взять freetype отсюда: http://gnuwin32.sourceforge.net/packages/freetype.htm

Всем спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.