2017-06-22 4 views
0

Je travaille dans unix. J'ai ajouté du code personnalisé dans Freetype pour tester son flux. Je cible le module de pilote Type1 et en utilisant mon application côté client, j'essaie d'ouvrir un fichier de police de type1 et d'y imprimer le nom de la famille de polices et le nom du style. J'ai ajouté le code suivant dans la section du module de pilote side side1 où il vérifie l'en-tête du fichier de police (il devrait donc toujours s'exécuter quand je lance mon application) mais cela ne fonctionne pas. Freetype est compilé avec des erreurs et je l'ai installé sur OS avec la commande sudo make install.Comment lier les modifications dans le code à la bonne version de la bibliothèque FreeType?

code ajouté à 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); 

On dirait que Freetype n'est pas lier mes code personnalisé à droite la version Freetype. Je peux confirmer cela parce que j'ai essayé de commenter tout le code de la fonction FT_Init_FreeType et l'ai appelée avec mon application et cela a fonctionné. Cela signifie qu'il y a du Freetype installé à un niveau très bas qui ne change pas même si j'ajoute du code personnalisé ou quoi que ce soit. Alors, comment puis-je modifier cela

Répondre

0

J'ai trouvé la solution le problème était lié à la liaison dynamique. Mon application liait avec le mauvais type de libfreetype donc je l'ai changé par la variable LD_LIBRARY_PATH et maintenant tout fonctionne bien.