La compilación de OpenCL en Ubuntu
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!
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 ??p>
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 ??p>
Mi Información del sistema
- SO : Ubuntu 16.04 LTS
- GPU : NVIDIA GeForce GTX 660
- GPU controlador : nvidia-375
- OpenCL : 1,2