es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Módulos del entorno de Clion para Linux y OpenCV.

Estoy buscando cómo forzar a CMake a encontrar OpenCL.

Mi archivo CMakeLists.txt se ve así:

find_package(OpenCL REQUIRED)
add_executable(test main.c)
target_link_libraries (test OpenCL::OpenCL)

Y antes de que CMake pueda encontrar OpenCL, debo ejecutar

module load CUDA

El servidor está utilizando https://modules.readthedocs.io/en/latest/module.html.

Si ejecuto cmake usando SSH está todo bien, pero cuando quiero hacerlo en CLion no puede encontrar OpenCL, como si CLion ignorara completamente el comando de carga de módulos.

También coloqué este comando en ~/.bash_profile, lo que hizo que la conexión ssh siempre encontrara OpenCL (no es necesario ejecutar el comando module load CUDA cada vez que inicio sesión).

También miré aquí: https://stackoverflow.com/questions/47092761/clion-linux-environment-modules.

Pero de nada sirve, CLion todavía no puede encontrar OpenCL, así que no estoy seguro de qué hacer ahora, ¿puedo especificar manualmente la ruta a OpenCL en CmakeLists.txt e incluirlo en su lugar, porque los tengo en /ceph/grid/home/ss264hg/CUDA/cuda-11.0?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Si CLion no puede encontrar OpenCL, a pesar de que se haya ejecutado el comando module load CUDA en el servidor, puede especificar manualmente la ruta de las bibliotecas de OpenCL e incluirlas en su archivo CMakeLists.txt.

    Para hacer esto, puede usar el comando find_library para encontrar la ruta de las bibliotecas de OpenCL y especificarla en el comando target_link_libraries de la siguiente manera:

    find_library(OPENCL_LIBRARY OpenCL PATHS /ceph/grid/home/ss264hg/CUDA/cuda-11.0/lib64)
    add_executable(test main.c)
    target_link_libraries(test ${OPENCL_LIBRARY})
    

    Esto debería obligar a CMake a encontrar las bibliotecas de OpenCL y vincularlas a su ejecutable, sin depender de module load CUDA.

Comments are closed.