J'essaie actuellement de compiler un programme simple donné en OpenCL à partir de ce site Web. Il me donnera le nécessaire DeviceInfo
dont j'ai besoin. Après avoir simplement appelé un make
, j'obtiens l'erreur ci-dessous:
sharan@sharan-X550CC:~/opencl-ex/Ex1$ make
g++ DeviceInfo.cpp -I ../../Cpp_common -lOpenCL -o DeviceInfo
/usr/bin/ld: cannot find -lOpenCL
collect2: error: ld returned 1 exit status
Makefile:23: recipe for target 'DeviceInfo' failed
make: *** [DeviceInfo] Error 1
Maintenant, j'ai installé en utilisant les instructions de ce site Web. Cependant, je reçois toujours l'erreur ci-dessus.
Comment puis-je résoudre cette erreur?
Comme déjà indiqué par Yaron, l'éditeur de liens ne sait pas où trouver la bibliothèque OpenCL, c'est-à-dire qu'il ne se trouve nulle part où il la recherche.
Au lieu de le déplacer vers l'un de ces endroits (par exemple
/usr/lib
), je suggère d'informer l'éditeur de liens où le chercher via le-L
drapeau. La commande se lirait alors (notez le-L/usr/lib/x86_64-linux-gnu
)Si vous utilisez un manuscrit,
Makefile
vous pouvez simplement modifier la commande du compilateur / éditeur de liens comme ceci. Sinon, vous devrez toucher votre système de construction pour l'inclure.la source
LDFLAGS
par exemplemake 'LDFLAGS=-L/usr/lib/x86_64-linux-gnu'
LDFLAGS=$LDFLAGS:/usr/lib/x86_64-linux-gnu/
pour conserver les paramètres précédents