Мой опыт программирования составляет около 1 года опыта программирования на C / C ++ в средней школе, но я провел свое исследование и написал простую программу с OpenCL несколько месяцев назад. Мне удалось относительно легко скомпилировать и запустить это на компьютере Apple с помощью g ++ и опции --framework. Теперь я на своей машине с Ubuntu и понятия не имею, как ее скомпилировать. Правильные драйверы были загружены вместе с Stream SDK от ATI (у меня ATI Radeon HD5870). Любая помощь будет оценена по достоинству!
Компиляция OpenCL в Ubuntu
Ответы (3)
Пытаться
locate libOpenCL.so
Если он находится в одном из стандартных каталогов (скорее всего, / usr / lib или / usr / local / lib), вам необходимо заменить «--framework OpenCL» на «-lOpenCL». Если g ++ не может найти библиотеку, вы можете указать g ++ искать в конкретном каталоге, добавив «-L / path / to / library».
Я бы хотел, чтобы мой Linux был более полезным ... Вероятно, лучше всего, если вы повторно загрузите ati-stream-sdk, после его распаковки откройте Терминал и «cd / path / to / extract / files»; в этом каталоге выполните make && sudo make install
make
вы, наверное, знаете это из окон, это компилируется, все, что нужно скомпилировать&&
объединяет команды вместе, следующие команды будут выполнены только в том случае, если первая команда выполнена успешно.sudo make install
это поместит файлы в ожидаемые места (sudo выполняет команду с привилегиями суперпользователя, вам нужно будет ввести свой пароль)
Надеюсь, это поможет.
g++ -L/opt/AMDAPP/lib/x86_64/ -I/opt/AMDAPP/include [filename.cpp] -lOpenCL
- person Benjamin Manns; 14.09.2012
Возможно, вам не хватает динамических библиотек в конфигурации динамического компоновщика.
Найдите, где находятся библиотеки. Скорее всего, / usr / lib или / usr / local / lib.
Убедитесь, что расположение пути также настроено в одном из следующих мест:
- LD_LIBRARY_PATH - вы можете установить его в оболочке среды, например .bashrc
- /etc/ld.so.conf - вам нужно будет вызвать ldconfig для обновления кеша, и для изменения файла требуется root-доступ.
Причина
Помимо @bjoernz, моя система не может найти файл libOpenCL.so
Это потому, что отсутствует правильный файловый каталог.
После поиска в Интернете я обнаружил, что libOpenCL.so
файл может быть предоставлен пакетом ocl-icd-opencl-dev
.
Решение
Вам просто нужно установить упомянутый выше пакет, набрав в cmd
sudo apt update
sudo apt install ocl-icd-opencl-dev
Следовательно, libOpenCL.so
можно найти в папке /usr/lib/x86_64-linux-gnu/
.
Моя системная информация
- ОС: Ubuntu 16.04 LTS.
- Графический процессор: NVIDIA GeForce GTX 660
- Драйвер графического процессора: nvidia-375
- OpenCL: 1.2
Ссылка:
[1] Как установить libOpenCL.so в ubuntu
[2] Как настроить OpenCL в Linux