Pregunta

Mi experiencia en programación es de aproximadamente 1 año de experiencia en C / C ++ de la escuela secundaria, pero lo hice mi investigación y escribió un programa sencillo con OpenCL hace unos meses. Yo era capaz de compilar y ejecutar esto en un ordenador Apple con relativa facilidad con g ++ y la opción --framework. Ahora estoy en mi máquina de Ubuntu y no tengo ni idea de cómo compilarlo. Los controladores correctos se han descargado junto con Stream SDK de ATI (tengo una ATI Radeon HD5870). Cualquier ayuda se agradece!

¿Fue útil?

Solución

Trate

locate libOpenCL.so

Si está en uno de los directorios estándar (normalmente / usr / lib o / usr / local / lib local) es necesario sustituir "--framework OpenCL" con "-lOpenCL". Si g ++ no puede encontrar el lib se puede decir g ++ para buscar en un directorio específico mediante la adición de "L / ruta / a / biblioteca".

Me gustaría tener mi Linux sea más útil ... Es probablemente el mejor si vuelve a descargar la ati-stream-SDK, después de extraerlo, abrir el terminal y "cd / ruta / a / extraído / archivos"; en ese directorio ejecute make && sudo make install

  • make usted probablemente sabe esto desde ventanas, Esto compila, lo que necesita ser compilados
  • Comandos de cadenas && juntos, los siguientes comandos sólo se ejecutarán si el primer comando tuvo éxito
  • sudo make install esto hará que los archivos en los lugares previstos (sudo ejecuta un comando con privilegios de superusuario, tendrá que introducir su contraseña)

Espero que ayude.

Otros consejos

Es posible que falte las librerías dinámicas de la configuración dinámica enlazador.

Búsqueda de donde las bibliotecas son. Lo más probable es / usr / lib o / usr / local / lib local.

Asegúrese de que la ubicación de la ruta también está configurado en uno de estos lugares:

  • LD_LIBRARY_PATH - se puede establecer en que la cáscara medio ambiente, como .bashrc
  • /etc/ld.so.conf -. Tendrá que ldconfig llamada para actualizar la memoria caché y requiere acceso de root para cambiar el archivo

Motivo

Además de @bjoernz, mi sistema no puede encontrar el archivo libOpenCL.so

Es porque el directorio de archivo correcto es que falta

Después de searchig en internet, descubrí que el archivo puede libOpenCL.so proporcionado por el paquete de ocl-icd-opencl-dev

Solución

Sólo tiene que instalar el paquete mencionado anteriormente mediante la tipificación en cmd

sudo apt update
sudo apt install ocl-icd-opencl-dev

Por lo tanto, libOpenCL.so se puede encontrar en /usr/lib/x86_64-linux-gnu/ carpeta

Mi Información del sistema

  • SO : Ubuntu 16.04 LTS
  • GPU : NVIDIA GeForce GTX 660
  • GPU controlador : nvidia-375
  • OpenCL : 1,2

Referencia:

[1] Como instalar libOpenCL.so en ubuntu

[2] Cómo configurar OpenCL en Linux

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top