Visual Studio компилируется при отладке, не удается выпустить («Не удается открыть включаемый файл»)

#c #visual-studio #compiler-errors

#c #visual-studio #ошибки компилятора

Вопрос:

У нас есть приложение OpenCL, которое использует библиотеку OpenCL от Nvidia; оно добавляется в Additional Include Directories свойство проекта с помощью NVSKCOMPUTE_ROOT переменной окружения: $(NVSDKCOMPUTE_ROOT)OpenCLcommoninc

Когда я компилирую программу в режиме отладки, все работает нормально; программа компилируется без ошибок и запускается.

Когда я компилирую программу в режиме выпуска, я иногда получаю следующую ошибку:

 Error 5 error C1083: Cannot open include file: 'CL/opencl.h': No such file or directory (cl.hpp)
  

Мы уже проверили конфигурацию выпуска ( Additional Include Directories и т.д.), И она идентична Debug (за исключением флагов оптимизации); Кроме того, эта ошибка возникает только в некоторых системах, а в других она отлично компилируется; мы используем точно такие же файлы проекта (и те же конфигурации запуска afaik) и не можем выяснить, что вызывает проблему…

Есть идеи или указания?

Комментарии:

1. $(NVSDKCOMPUTE_ROOT) Переменная среды определена во всех системах? Кроме того, сравните выпуск с Отлаживайте в «командной строке» в настройках. Может дать подсказку.

2. Да, это определено во всех системах — иначе он не компилировался бы при отладке. «Командная строка» также идентична (помимо флагов оптимизации).

3. Я бы попытался поместить дополнительный каталог в кавычки «$ (NVSDKCOMPUTE_ROOT) OpenCL common inc»

4. Хм, стоило попробовать, но ничего непредвиденно не изменилось…

Ответ №1:

В чем различия в системах? Такое когда-нибудь случалось с другими проектами? Происходит ли это когда-нибудь с другими файлами? Вы говорите, что это происходит только в некоторых системах, как часто?

Не могли бы вы написать другое небольшое приложение, используя эту библиотеку, и посмотреть, появится ли проблема снова? Если это так (и ваше приложение не слишком большое), не могли бы вы постепенно создавать свое приложение, пока не увидите проблему?