2010-01-22 3 views
0

J'ai un code source qui n'a pas été écrit par moi et je ne peux pas contacter l'auteur. Il est écrit en C++ et nécessite libjpeg, boost, et les Intel Performance Primitives.Erreur d'exécution Intel Performance Primitive (IPP)

Compilation était une corvée, mais après des jours de résolution de problèmes, il compile. Maintenant, j'obtiens l'erreur d'exécution suivante: error while loading shared libraries: libippi.so.5.1: cannot open shared object file: No such file or directory. L'erreur se produit immédiatement quels que soient les arguments de la ligne de commande.

J'ai téléchargé la version d'essai d'IPP pour Ubuntu 9.04. Sous /opt/intel/ipp/6.1.2.051/ia32/sharedlib/, je vois un tas de fichiers commençant par lib* et libippi*, y compris libippi.so.6.1. Donc, je pensais que je voudrais essayer de créer un lien libippi.so.5.1 qui pointe vers libippi.so.6.1, mais cela ne fonctionne pas. J'ai essayé de créer un lien similaire dans le répertoire local, et cela ne fonctionne pas non plus. Je ne suis pas familier avec l'une de ces bibliothèques, donc je ne sais pas quoi d'autre à essayer. Je n'ai pas trouvé de solutions sur le net ou SO. Si vous pouviez m'aider à corriger cette erreur, je l'apprécierais grandement. Je vous remercie.

Répondre

1

On dirait que l'application est compilée avec une ancienne version d'IPP. Depuis 6.1.2 est appelé libippi.so.6.1, il peut être aussi simple d'installer IPP 5.1.x (bien que la version linux de la bibliothèque ne soit pas aussi simple que cela.)

Si vous créez un login pour le non-intel zone de téléchargement IPP commerciale, vous pouvez creuser autour et voir si elles offrent des versions plus anciennes. Alternativement, faire une recherche google rapide, j'ai trouvé ce site FTP qui semble l'avoir, mais note Je n'ai pas réellement téléchargé ou essayé ce code, et ne peut pas vérifier s'il s'agit d'un miroir juridique ou non ou si elle est les bibliothèques Intel d'origine, vous devrez faire votre propre due dilligence avant d'utiliser ce code

http://21cma.bao.ac.cn/software/21cma/intel/ipp-5.1.1.005/

Notez que pour utiliser cette ancienne version de IPP dans une Ubuntu moderne, vous devrez peut-être obtenir des versions plus anciennes de les autres bibliothèques dont il dépend (les exigences sont listées dans les notes de publication), ou même simplement l'exécuter sous un chroot d'un Linux supporté Distro au moins pour tester si cela résout votre problème.

+0

Merci pour la réponse rapide. Avis de non-responsabilité Une solution alternative pourrait-elle être de trouver les parties du programme qui font référence à IPP 5.1 et de simplement le "changer" en 6.1, ou les bibliothèques sont-elles radicalement différentes? Soit dans la source C++, les fichiers d'en-tête, ou makefile? –

+0

Cela peut être possible, je crains de ne pas en savoir assez pour commenter l'étendue des changements de l'API. Cependant, si vous avez compilé depuis la source contre 6.1 et que vous avez toujours une dépendance sur un libppi qui n'est pas inclus dans 6.1, cela me porte à croire qu'il y a un composant dans l'arbre qui n'est pas compilé depuis la source, mais précompilé version différente. Vous pouvez explorer ldd pour voir si la dépendance sur libppi.so.5.1 vient de votre application principale ou de l'une des bibliothèques qu'elle relie. Également récurer vos fichiers make pour les références à libppi et voir si vous trouvez une référence – bdk