#visual-studio-2010
#visual-studio-2010
Вопрос:
У меня есть проект C (Brew C ) в MVSC 10, который компилируется в сборке debug, но не в сборке release, но я не могу понять, почему нет.
Проблема в том, что файлы заголовков в определенном каталоге не могут быть найдены, структура каталогов:
.mak
.sln
etc.
/inc/A/m.h
/inc/B/n.h
/inc/C/o.h
/inc/util/html/a.h
/inc/util/html/b.h
/src/A/
/src/B/
/src/C/
/src/util/html/
т.е. основные файлы проекта находятся в корневом каталоге, а заголовочные и исходные файлы распределены по подпапкам.
a.h и b.h можно найти в сборке отладки, но не в сборке выпуска.
Тем не менее, файл .mak содержит:
....
INCDIRS := ....
$(ProjectDir)inc/A
$(ProjectDir)inc/B
$(ProjectDir)inc/util/html
Таким образом, даже если /inc/util/html указан как каталог включения в .mak, проект не может его найти — но только в сборке выпуска.
Я не вижу условного поведения между сборками debug и relase — файлы заголовков включены в исходный код независимо от конфигурации сборки. И приведенный выше фрагмент является единственным местом в файле .mak, где указаны включаемые каталоги.
Итак, почему должна быть разница между сборками debug и сборками release?
Есть идеи?
Спасибо
Комментарии:
1. Каковы шансы, что вы на самом деле создаете с помощью собственной системы сборки MSVC вместо файла .mak? У вас есть файл .sln.
2. Если я отредактирую файл .mak, т.Е. удалю строку $(ProjectDir)inc/B , тогда он не сможет найти ни один из заголовочных файлов в inc / B — значит, используется файл .mak.
3. Посмотрите на свое решение. У вас действительно есть проект Makefile, определенный в нем?
4. .mak виден в обозревателе решений, если вы это имеете в виду. Если нет, что я должен проверить?