Fehler beim kompilieren von Ogre Testprogramm mit scons
-
Hallo Leute,
ich wollte mich einmal mit scons beschäftigen, und daher ein Ogre Programm mit scrons kompilieren, leider kriege ich folgende Fehlermeldung.
scons: Reading SConscript files ... Checking for C++ header file Ogre.h... no Ogre must be installed!
Das SConstruct sieht wie folgt aus:
platform = ARGUMENTS.get('OS', Platform()) mode = ARGUMENTS.get('mode', "release") if platform.name == "linux": listinc=[ # our main include directory 'include', # location of ogre includes '/usr/include/OGRE', # location of ois includes '/usr/include/OIS', ] else: listinc=[ # our main include directory 'include', # location of ogre includes 'E:/ogre-eihort/ogrenew/OgreMain/include', # location of ois includes 'E:/ogre-eihort/ogrenew/Dependencies/include/OIS', ] if platform.name == "linux": debugcflags=['-g'] releasecflags=[] if mode=="debug": env=Environment(CPPPATH=listinc, LIBPATH='.', CCFLAGS = debugcflags) else: env=Environment(CPPPATH=listinc, LIBPATH='.', CCFLAGS = releasecflags) else: debugcflags = ['-W1', '-GX', '-EHsc', '-D_DEBUG', '/MDd', '/Zi'] #extra compile flags for debug releasecflags = ['-O2', '-EHsc', '-DNDEBUG', '/MD'] #extra compile flags for release if mode=="debug": env=Environment(CPPPATH=listinc, LIBPATH='bin/windows/debug' , CCFLAGS = debugcflags, CPPDEFINES=["WIN32", "_DEBUG", "_WINDOWS"], LINKFLAGS='/DEBUG' ) else: env=Environment(CPPPATH=listinc, LIBPATH='bin/windows/release' , CCFLAGS = releasecflags, CPPDEFINES=["WIN32", "NDEBUG", "_WINDOWS"] ) # check for required include files and libraries conf = Configure(env) if not conf.CheckCXXHeader('Ogre.h'): print 'Ogre must be installed!' Exit(1) if not conf.CheckCXXHeader('OISPrereqs.h'): print 'OIS must be installed!' Exit(1) if platform.name == "linux": if not conf.CheckLib('OgreMain'): print 'OgreMain library must be in path' Exit(1) if not conf.CheckLib('OIS'): print 'OIS library must be in path' Exit(1) # list of files needed for compiling the program main_program_list=Split(""" src/SampleApp.cpp """) if platform.name == "linux": # list of libraries needed for linking libs_list=Split(""" OgreMain OIS """) else: # list of libraries needed for release libs_release_list=Split(""" c:/ogre-eihort/ogrenew/OgreMain/lib/Release/OgreMain c:/ogre-eihort/ogrenew/Dependencies/lib/Release/OIS kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib """) # list of libraries needed for debug libs_debug_list=Split(""" c:/ogre-eihort/ogrenew/OgreMain/lib/Debug/OgreMain_d c:/ogre-eihort/ogrenew/Dependencies/lib/Debug/OIS_d kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib """) if platform.name == "linux": if mode=="debug": env.Program('bin/linux/debug/main_d', main_program_list, LIBS=libs_list, LIBPATH='.') else: env.Program('bin/linux/release/main', main_program_list, LIBS=libs_list, LIBPATH='.') else: if mode=="debug": env.Program('bin/windows/debug/main_d', main_program_list, LIBS=libs_debug_list, LIBPATH='.') else: env.Program('bin/windows/release/main', main_program_list, LIBS=libs_release_list, LIBPATH='.')
Würde mich über jede Hilfe freuen.
mfg Darian
-
Ich kenne mich zwar mit Ogre nicht aus, aber bei dieser Meldung würde ich mal stark vermuten, dass er den Header nicht findet, weil er entweder einfach nicht da ist (Ogre nicht installiert) oder der entsprechende include-Pfad nicht gesetzt ist.
-
Hallo und danke für die Antwort.
Aber die Datei /usr/include/OGRE/Ogre.h ist vorhanden. Das selbe habe ich natürlich auch gedacht, aber ist installiert und genau wie angegeben vorhanden.
Darum dachte ich vielleicht ist es etwas mit der Funktion CheckCXXHeader, und da kenne ich mich dann zu wenig aus, darum musste ich nachfrgen.
Mit freundlicen Grüßen
Darian
-
das Problem ist, dass die Platform nicht "linux" sondern "posix" heißt
suche nach den If bedingunen in denen platform.name == "linux" steht und änder sie in platform.name == "posix" und es sollte funktionieren
-
Hallo!
Ja das macht Sinn, jetzt kompiliert es denke ich richtig.
Das Programm selbst funktioniert zwar nicht. Muss ich noch einmal sehen was da los ist.
Also immer bei scons muss ich posix verwenden, aber Ubuntu ist gar kein posix kompatibles System. (zumindest laut wiki)
Jedenfalls danke für die Infos.
lg Darian