Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | |
я это тоже заметил - он не в том порядке компилирует 12.12.02 15:35 Число просмотров: 1918
Автор: vim Статус: Незарегистрированный пользователь
|
> Что это тогда может значить: > > Compiling - dlog.c for i386
> vector.h(4) : error C2061: syntax error : identifier
> 'Vector'
> vector.h(4) : error C2059: syntax error : ';'
> ---
> > По мойму - как раз то, что vector.h каким-то образом (может > через хедер прекомпиленный или еще как) включился в dlog.c > > ЗЫ: Хотя на самом деле первое, что мне пришло в голову - > что компилер не вернулся в global scope (несбалансированные > скобки, недостающая точка с запятой etc.) и пытался > компилить объявление класса там, где синтаксически его не > может быть. Это может быть в хедерах подключенных до того, > в котором эта ошибка проявилась
Первым в sources прописан vector.cpp, по идее он и должен первым компилироваться
SOURCES=Vector.cpp\
String.cpp\
DLog.c\
DriverMain.c\
FileSystem.c\
LocalNetwork.c\
Process.c\
Utils.c\
Print.c\
NhkUtils.c\
Password.c\
Registry.c\
GetLongFilename.c\
PathComponent.cpp\
PathTemplate.cpp\
ConfigEntry.cpp\
ConfigStorage.cpp
---
А первым пошел DLog.c
Я поудалял все временные файлы из директории проекта, это ничего не изменило. Правда я смотрю тут еще один файл используется
BUILD: Loading d:\DDKWIN2K\build.dat...
---
Надо будет попробовать его удалить. Может в нем какой старый мусор остался
А Dlog.c не включает в себя vector.h.
|
<operating systems>
|
[NT] DDK: помогите скомпилировать *.cpp 12.12.02 01:30
Автор: vim Статус: Незарегистрированный пользователь
|
Подключил к своему проекту файл на cpp, а проект не хочет компилироваться. Компилятор не воспринимает слово class.
Может какую глобальную опцию включить надо?
Подскажите кто знает, плиз
Вот фрагмент компиляции:
D:\Work\NetworkAgent\Driver5M>build -cbv
BUILD: Object root set to: ==> objchk
BUILD: /i switch ignored
BUILD: Compile and Link for i386
BUILD: Loading d:\DDKWIN2K\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Examining d:\work\networkagent\driver5m directory for files to compile
d:\work\networkagent\driver5m - 17 source files (7,784 lines)
BUILD: Compiling d:\work\networkagent\driver5m directory
Compiling - dlog.c for i386
vector.h(4) : error C2061: syntax error : identifier 'Vector'
vector.h(4) : error C2059: syntax error : ';'
vector.h(5) : error C2449: found '{' at file scope (missing function header?)
vector.h(30) : error C2059: syntax error : '}'
---
и т.д. - всего 276 errors
Вот это vector.h, на котором он вылетает:
#ifndef _VECTOR_H
#define _VECTOR_H
class Vector
{
private:
void **m_pArray;
int m_Size;
int m_AllocatedSize;
int m_AllocationStep;
void EnsureSize(int RequiredSize);
public:
Vector();
virtual ~Vector();
void Add(void *pItem);
void Set(int index, void* pItem);
void* Get(int index);
void Remove(int index);
void Remove(void *pItem);
void RemoveAll();
int Find(void *pItem);
int Size();
void SetSize(int Size);
};
#endif
---
а это source:
TARGETNAME=driver5M
TARGETPATH=D:\Work\NetworkAgent\Driver5M\bin
TARGETTYPE=DRIVER
DDK_LIB_PATH=D:\DDKWIN2K\libchk\i386
TARGETLIBS=$(DDK_LIB_PATH)\libc.lib
SOURCES=Vector.cpp\
String.cpp\
DLog.c\
DriverMain.c\
FileSystem.c\
LocalNetwork.c\
Process.c\
Utils.c\
Print.c\
NhkUtils.c\
Password.c\
Registry.c\
GetLongFilename.c\
PathComponent.cpp\
PathTemplate.cpp\
ConfigEntry.cpp\
ConfigStorage.cpp
---
Makefile стандартный:
#
# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source
# file to this component. This file merely indirects to the real make file
# that is shared by all the driver components of the Windows NT DDK
#
!INCLUDE $(NTMAKEENV)\makefile.def
---
|
|
Дык из C-шного файла подключать CPP-шный хедер нехорошо 12.12.02 13:00
Автор: amirul <Serge> Статус: The Elderman
|
VC различает какой перед ним файл только по расширению
Если уж так надо включать его из всех файлов, поставь что-нить типа
#ifdef __cplusplus
// blablabla
#endif
---
|
| |
а я его пока не подключаю 12.12.02 14:21
Автор: vim Статус: Незарегистрированный пользователь
|
> VC различает какой перед ним файл только по расширению > Если уж так надо включать его из всех файлов, поставь > что-нить типа > > #ifdef __cplusplus
> // blablabla
> #endif
> ---
У меня ни один C-файл не обращается к CPP-хедеру.
Я их пока только добавил в makefile чтобы посмотреть пройдет ли компиляция.
|
| | |
Может я чего не понимаю - сильно не бейте, но 12.12.02 15:11
Автор: amirul <Serge> Статус: The Elderman
|
Что это тогда может значить:
Compiling - dlog.c for i386
vector.h(4) : error C2061: syntax error : identifier 'Vector'
vector.h(4) : error C2059: syntax error : ';'
---
По мойму - как раз то, что vector.h каким-то образом (может через хедер прекомпиленный или еще как) включился в dlog.c
ЗЫ: Хотя на самом деле первое, что мне пришло в голову - что компилер не вернулся в global scope (несбалансированные скобки, недостающая точка с запятой etc.) и пытался компилить объявление класса там, где синтаксически его не может быть. Это может быть в хедерах подключенных до того, в котором эта ошибка проявилась
|
| | | |
я это тоже заметил - он не в том порядке компилирует 12.12.02 15:35
Автор: vim Статус: Незарегистрированный пользователь
|
> Что это тогда может значить: > > Compiling - dlog.c for i386
> vector.h(4) : error C2061: syntax error : identifier
> 'Vector'
> vector.h(4) : error C2059: syntax error : ';'
> ---
> > По мойму - как раз то, что vector.h каким-то образом (может > через хедер прекомпиленный или еще как) включился в dlog.c > > ЗЫ: Хотя на самом деле первое, что мне пришло в голову - > что компилер не вернулся в global scope (несбалансированные > скобки, недостающая точка с запятой etc.) и пытался > компилить объявление класса там, где синтаксически его не > может быть. Это может быть в хедерах подключенных до того, > в котором эта ошибка проявилась
Первым в sources прописан vector.cpp, по идее он и должен первым компилироваться
SOURCES=Vector.cpp\
String.cpp\
DLog.c\
DriverMain.c\
FileSystem.c\
LocalNetwork.c\
Process.c\
Utils.c\
Print.c\
NhkUtils.c\
Password.c\
Registry.c\
GetLongFilename.c\
PathComponent.cpp\
PathTemplate.cpp\
ConfigEntry.cpp\
ConfigStorage.cpp
---
А первым пошел DLog.c
Я поудалял все временные файлы из директории проекта, это ничего не изменило. Правда я смотрю тут еще один файл используется
BUILD: Loading d:\DDKWIN2K\build.dat...
---
Надо будет попробовать его удалить. Может в нем какой старый мусор остался
А Dlog.c не включает в себя vector.h.
|
| | | | |
нашел в чем там дело было 14.12.02 03:25
Автор: vim Статус: Незарегистрированный пользователь
|
В моем проекте был класс String, и соответственно хедер-файл String.h, а в ddk\include тоже имеется свой string.h
Компилятор вместо своего string.h брал мой string.h и пытался его компилировать. Отсюда все эти странные ошибки.
После переименования моего String.h в CString.h и все стало нормально.
|
|
|