2015-04-30 2 views
0

Я работаю с несколькими проектами, где я использую заголовочные файлы одного проекта внутри другого.Ошибка идентификатора ошибки C2065 определений, которые явно там

Теперь я добавил проект в дополнительные каталоги C/C++ дополнительных включений, но после этого я получаю эту ошибку с объявлениями, которые находятся в файле resource.h.

Я предполагаю, что, поскольку в обоих проектах используется ресурс.h, он смущает их. Файлы resource.h отличаются друг от друга.

Итак, если это проблема, что я могу сделать, чтобы остановить это?

Редактировать: Я попытаюсь привести пример, так как я не могу опубликовать исходный код здесь.

OK Я получил 2 Проекты:

MixedMfc: 
<-file1. cpp 
<-file2. cpp 
<-file3. cpp 

<-file1.h 
<-file2.h 
<-file3.h 
<-resource.h 

NativeCaller: 
<-file4.cpp 
<-file5.cpp 
<-file6.cpp 

<-file4.h 
<-file5.h 
<-file6.h 
<-resource.h 

каждый файл заголовка имеет #include "resource.h" (за исключением Resource.h файлов)

первый resource.h выглядит следующим образом:

//{{NO_DEPENDENCIES}} 
// Microsoft Visual C++ generated include file. 

второй имеет кучу определений

//{{NO_DEPENDENCIES}} 
// Microsoft Visual C++ generated include file. 
#define VALUE1 1 
#define VALUE2 2 
#define VALUE3 3 
#define VALUE4 4 
#define VALUE5 5 

Благодаря

+0

показать свой код или [SSCCE] (http://sscce.org/)/[MCVE] (http://stackoverflow.com/help/mcve) –

+0

Похоже, что один проект поднимает ресурс.h другой. Поскольку они имеют одно и то же имя и включены одинаково, вам придется поэкспериментировать с путями включения компилятора, чтобы каждый файл получил правильный заголовок. Или вы можете переименовать файл, но я не уверен, насколько хорошо VS поддерживает заголовок ресурса, имеющий нестандартное имя. –

ответ

2

Эта проблема часто решается путем установки более высокого каталога уровня, как Visual Studio включает каталог, и в том числе файлы в формате

#include "boost/lexical_cast.hpp" 
#include "SFML/Graphics.hpp" 

или в случае

#include "project1/resource.h" 

vs

#include "project2/resource.h" 

Или вы просто можете удалить пустой ресурс.h из своего проекта и удалить его из своей файловой системы?

+0

спасибо, что помогло мне – SamY

Смежные вопросы