Как связать изменения в коде с нужной версией библиотеки FreeType?

Я работаю в юникс. Я добавил некоторый пользовательский код в Freetype, чтобы проверить его работу. Я ориентируюсь на модуль драйвера Type1 и с помощью своего клиентского приложения пытаюсь открыть файл шрифта type1 и распечатать из него имя семейства шрифтов и имя стиля. Я добавил следующий код в раздел модуля драйвера side type1, где он проверяет заголовок файла шрифта (поэтому он всегда должен выполняться, когда я запускаю свое приложение), но он не работает. Freetype скомпилирован без ошибок, и я также установил его в ОС с помощью команды sudo make install.

Код добавлен в Freetype

FT_FILE *f;
f = ft_fopen("/home/sungmin/Freetype_source/freetype-2.8/include/freetype/internal/file.txt", "w+");
if (f != NULL)
    {
        fprintf(f, "Passed Passed Passed \n");
        fprintf(stderr, "Passed Passed Passed \n");
        }

    else
    {
        fprintf(f, "Error error error \n");
        fprintf(stderr, "Passed Passed Passed \n");
    }

   ft_fclose(f);

Похоже, Freetype не связывает мой пользовательский код с правильной версией Freetype. Я могу подтвердить это, потому что я попытался прокомментировать весь код функции FT_Init_FreeType и вызвал ее в своем приложении, и все же она работала. Это означает, что на очень низком уровне установлен какой-то Freetype, который не меняется, даже если я добавляю собственный код или что-то еще. Итак, как я могу изменить это


person Ammar Ul Hassan    schedule 22.06.2017    source источник


Ответы (1)


Я нашел решение проблемы, связанной с динамической компоновкой. Мое приложение связывалось с неправильным типом libfreetype, поэтому я изменил его с помощью переменной LD_LIBRARY_PATH, и теперь все работает гладко.

person Ammar Ul Hassan    schedule 23.06.2017