I was getting this error when trying to compile reactos:
reub2000@reub2000 ~/reactos $ make [MKDIR] obj-i386/tools [MKDIR] obj-i386/tools/rbuild [MKDIR] obj-i386/tools/rbuild/backend [MKDIR] obj-i386/tools/rbuild/backend/mingw [CC] tools/rbuild/backend/mingw/mingw.cpp tools/rbuild/backend/mingw/modulehandler.h:91: error: extra qualification ‘MingwModuleHandler::’ on member ‘GetCompilationUnitDependencies’ tools/rbuild/backend/mingw/modulehandler.h:150: error: extra qualification ‘MingwModuleHandler::’ on member ‘GetPrecompiledHeaderFilename’ make: *** [obj-i386/tools/rbuild/backend/mingw/mingw.o] Error 1
Looking at the file, I couldn't understand why MingwModuleHandler:: was being used within the class of the same name, so I removed it from before the definition of the functions. I'm guessing that it was copied from the function definition outside of the class in a .cpp file?
Anyways, this seems to allow reactos to compile:
Index: tools/rbuild/backend/mingw/modulehandler.h
--- tools/rbuild/backend/mingw/modulehandler.h (revision 20484) +++ tools/rbuild/backend/mingw/modulehandler.h (working copy) @@ -88,7 +88,7 @@ std::string GetBasename ( const std::string& filename ) const; FileLocation* GetActualSourceFilename ( const FileLocation* fileLocation ) const; std::string GetExtraDependencies ( const std::string& filename ) const;
- std::string MingwModuleHandler::GetCompilationUnitDependencies (
const CompilationUnit& compilationUnit ) const;
- std::string GetCompilationUnitDependencies ( const CompilationUnit&
compilationUnit ) const; std::string GetModuleArchiveFilename () const; bool IsGeneratedFile ( const File& file ) const; std::string GetImportLibraryDependency ( const Module& importedModule ); @@ -147,7 +147,7 @@ std::string GenerateGccIncludeParameters () const; std::string GenerateGccParameters () const; std::string GenerateNasmParameters () const;
- std::string MingwModuleHandler::GetPrecompiledHeaderFilename () const;
- std::string GetPrecompiledHeaderFilename () const;
void GenerateGccCommand ( const FileLocation* sourceFileLocation, const std::string& extraDependencies, const std::string& cc,
Also, I saw a lot of 'std::'. Why not use 'using namespace std;'?