Заголовочные файлы, связанные с заголовочным файлом, не найдены. - PullRequest
5 голосов
/ 08 сентября 2010

У меня проблема с платформой Nvidia OpenCl / Cuda, но я думаю, что это проблема gcc.

В примере файла opencl_hello_world.c используется следующий заголовочный файл:

#include "../OpenCL/common/inc/CL/opencl.h"

с opencl.h с использованием этих файлов заголовков:

#include <../OpenCL/common/inc/CL/cl.h>
#include <../OpenCL/common/inc/CL/cl_gl.h>
#include <../OpenCL/common/inc/CL/cl_gl_ext.h>
#include <../OpenCL/common/inc/CL/cl_ext.h>

Таким образом, все файлы заголовков находятся в одной папке.

Когда я затем компилирую с gcc opencl_hello_world.c -std=c99 -lOpenCL, я получаю следующие сообщения об ошибках:

error: ../OpenCL/common/inc/CL/cl.h: No such file or directory
error: ../OpenCL/common/inc/CL/cl_gl.h: No such file or directory
...

Даже если cl.h и другие файлы заголовков находятся в этой папке.

После поиска SO я изменил включенные в opencl.h значения на

   #include "cl.h"
   #include "cl_gl.h"

, как я прочел здесь: gcc Не могу найти включенный заголовок .

Но возиться с заголовочными файлами фреймворков не похоже на путь?Как правильно решить эту проблему?

1 Ответ

7 голосов
/ 08 сентября 2010

Вы используете обе формы #include "" и #include <>, которые не выполняют поиск по одним и тем же путям. "" является локальным для вашего проекта, и командная строка -i, указанная для gcc, <> - это системный путь, указанный от -I до gcc.

Возможно, вам нужно установить путь включения с помощью -Ipath / to / include в командной строке gcc.

...