Domanda

La mia esperienza di programmazione è di circa 1 anno di C / C ++ esperienza di scuola superiore, ma ho fatto la mia ricerca e ha scritto un semplice programma con OpenCL a pochi mesi fa. Sono stato in grado di compilare ed eseguire questo su un computer Apple relativamente facilmente con g ++ e l'opzione --framework. Ora sono sulla mia macchina Ubuntu e non ho idea di come compilarlo. I driver corretti sono stati scaricati con Stream SDK ATI (ho un'ATI Radeon HD5870). Qualsiasi aiuto sarebbe apprezzato!

È stato utile?

Soluzione

Prova

locate libOpenCL.so

Se è in una delle directory standard (molto probabilmente / usr / lib, o / usr / local / lib) è necessario sostituire "--framework OpenCL" con "-lOpenCL". Se g ++ non riesce a trovare il lib si può dire g ++ di cercare in una directory specifica aggiungendo "-L / path / to / libreria".

Vorrei avere il mio Linux di essere più utile ... Probabilmente è meglio se si riscaricare l'ati-stream-sdk, dopo l'estrazione, aprire il Terminale e "cd / path / to / scarico / file"; in quella directory eseguire make && sudo make install

  • make probabilmente sapete questo dalle finestre, questa compilazione, ciò che deve essere compilato
  • Comandi catene && insieme, i seguenti comandi saranno eseguiti solo se il primo comando è riuscito
  • sudo make install questo metterà i file nei luoghi previsti (sudo esegue un comando con privilegi di superuser, si dovrà inserire la password)

La speranza che aiuta.

Altri suggerimenti

Potrebbe mancare le librerie dinamiche dalla configurazione dinamica linker.

Cerca in cui le librerie sono. Molto probabilmente / usr / lib, o / usr / local / lib.

Assicurarsi che la posizione del percorso è inoltre configurato in uno di questi luoghi:

  • LD_LIBRARY_PATH - è possibile impostare in voi guscio di ambiente, come .bashrc
  • /etc/ld.so.conf -. Sarà necessario chiamata ldconfig per aggiornare la cache e richiede l'accesso root per modificare il file

Motivo

A parte @bjoernz, il mio sistema non riesce a trovare il file libOpenCL.so

E 'perché la directory di file corretto manca

Dopo searchig su internet, ho scoperto che il file può libOpenCL.so fornito dal pacchetto ocl-icd-opencl-dev

Soluzione

Hai solo bisogno di installare il pacchetto di cui sopra digitando cmd nella

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

Pertanto, libOpenCL.so, si trova nel /usr/lib/x86_64-linux-gnu/ cartella

Il mio Information System

  • OS : Ubuntu 16.04 LTS
  • GPU : NVIDIA GeForce GTX 660
  • GPU driver : nvidia-375
  • OpenCL : 1.2

Riferimento:

[1] Come installare libOpenCL.so su ubuntu

[2] Come impostare OpenCL in Linux

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top