2013-04-10 8 views
5

मैं कोशिश:स्कैन 2.3 दृश्य एक्सप्रेस 2012 के साथ सी ++ प्रोजेक्ट कैसे बनाया जाए?

env = Environment(ENV = {'PATH' : os.environ['PATH'], \ 
      'INCLUDE' : 'c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\include\\', \ 
      'LIB' : 'c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\lib\\'}) 

लेकिन यह काम नहीं। त्रुटि संदेश: "सीएल" आज्ञा नहीं है ...

मैं SCons विकि में वर्णन नहीं मिला (http://www.scons.org/wiki/PlatformSpecificNotes#Visual_C.2B-.2B-): तो माइक्रोसॉफ्ट विजुअल C++ का उपयोग कर, आप 'शामिल', 'उदारीकरण' और 'पथ' स्थापित करने की आवश्यकता अपने पर्यावरण में, फिर जब आप अपना 'पर्यावरण' ऑब्जेक्ट बनाते हैं तो उन्हें आयात करें। इन्हें एमएसवीसी ++ टूल्स का पता लगाने और 'सीपीपीएफएलजीएस' सेट करने के लिए इस्तेमाल किया जाएगा।

मैं क्या गलत कर रहा हूं?

पूरा sconstruct (यह ubuntu पर काम करता है, और MinGW साथ खिड़कियों पर):

import os 
import sys 

if ARGUMENTS.get('ndk', 0): 
    current_dir = os.getcwd()#os.path.dirname(os.path.abspath(__file__)) 
    os.environ["NDK_PROJECT_PATH"] = current_dir + '/android-project' 
    os.system("ndk-build") # use V=1 if can't compile for android 
    exit(0) 

if ARGUMENTS.get('ant', 0): 
    current_dir = os.getcwd()#os.path.dirname(os.path.abspath(__file__)) 
    android_prj_path = current_dir + '/android-project' 
    os.chdir(android_prj_path) 
    os.system("ant debug") # use V=1 if can't compile for android 
    exit(0) 

VariantDir('obj', 'src', duplicate = 0) 

if sys.platform == 'win32': 
    if ARGUMENTS.get('msvc', 0) == "1": 
     env = Environment(ENV = {'PATH' : os.environ['PATH'], \ 
      'INCLUDE' : 'c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\include\\', \ 
      'LIB' : 'c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\lib\\'}) 
    else: 
     env = Environment(tools = ['mingw']) 
     env.Append(CCFLAGS = '-U__STRICT_ANSI__') # for boost::program_options on mingw 4.7 
     env.Append(LINKFLAGS = '-mwindows') 
     env.Append(LIBS = ['mingw32', 'SDL2', 'SDL2main', 'm', 'user32', 'gdi32', \ 
        'winmm', 'imm32', 'ole32', 'oleaut32', 'version', \ 
        'uuid', 'glew32', 'opengl32']) 
else: 
    env = Environment() 
    env.Append(CCFLAGS = '-rdynamic') 
    env.Append(LIBS = ['SDL2', 'pthread', 'm', 'dl', 'GL']) 

env.Append(CCFLAGS = '-fno-strict-aliasing') # for angelscript compile see doc 
cur_dir = os.getcwd() 
env.Append(CCFLAGS = '-I ' + cur_dir) # for boost find in include path 
env.Append(CCFLAGS = '-g -std=c++0x -Wall -Wfatal-errors') #-msse2 -pg 
env.Append(LINKFLAGS=[]) # -pg 

src = Glob('obj/*.cpp') 
src += Glob('obj/scene2d/*.cpp') 
src += Glob('obj/pugixml/*.cpp') 
src += Glob('obj/debug_support/*.cpp') 
src += Glob('obj/angelscript/*.cpp') 
src += Glob('obj/scriptarray/*.cpp') 
src += Glob('obj/scriptstdstring/*.cpp') 
src += Glob('obj/scriptbuilder/*.cpp') 
src += Glob('obj/boost_libs_src/program_options/src/*.cpp') 
src += Glob('obj/boost_libs_src/smart_ptr/src/*.cpp') 
src += Glob('obj/boost_libs_src/system/src/*.cpp') 
src += Glob('obj/boost_libs_src/filesystem/src/*.cpp') 
src += Glob('obj/libwebp/*/*.c') 
src += Glob('obj/zlib/*.c') 
src += Glob('obj/libpng/*.c') 

env.Program(target = 'start', source = src) 
+0

यह स्पष्ट नहीं है कि त्रुटि क्या है। क्या यह संकलक नहीं ढूंढ रहा है? क्या आप शेष SConsctruct दिखा सकते हैं। – Brady

+0

विंडोज 7 पर पर्यावरण कैसे बनाएं, स्कैन 2.3, एमएसवीसी 2012 एक्सप्रेस? मुझे लगता है कि वहां त्रुटि है। –

उत्तर

7

सबसे अच्छा तरीका है मेरे लिए काम करता है और MSVC है:

env = Environment(MSVC_USE_SCRIPT = "c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\bin\\vcvars32.bat") 
1

पूर्ण स्क्रिप्ट SCons उपयोग करने के लिए

import os 
import sys 

current_dir = os.getcwd()#os.path.dirname(os.path.abspath(__file__)) 

if ARGUMENTS.get('ndk', 0): 
    os.environ["NDK_PROJECT_PATH"] = current_dir + '/android-project' 
    os.system("ndk-build") # use V=1 if can't compile for android 
    Exit(0) 

if ARGUMENTS.get('ant', 0): 
    android_prj_path = current_dir + '/android-project' 
    os.chdir(android_prj_path) 
    os.system("ant debug") # use V=1 if can't compile for android 
    Exit(0) 

VariantDir('obj', 'src', duplicate = 0) 

if sys.platform == 'win32': 
    if ARGUMENTS.get('msvc', 0) == "1": 
     #os.system('"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\bin\\vcvars32"') 
     env = Environment(ENV = {'PATH' : os.environ['PATH'], \ 
      'INCLUDE' : 'c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\include\\;c:\\Program Files (x86)\\Windows Kits\\8.0\\Include\um\\;c:\\Program Files (x86)\\Windows Kits\\8.0\\Include\\shared\\', \ 
      'LIB' : 'c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\lib\\;c:\\Program Files (x86)\\Windows Kits\\8.0\\Lib\\win8\\um\\x86\\'}) 
     env.Append(CCFLAGS = '-I ' + current_dir + '/dep/msvc/include') # for SDL2 on windows 
     env.Append(CCFLAGS = '/Od /EHsc -DBOOST_ALL_NO_LIB') 
     env.Append(LINKFLAGS = '/LIBPATH:' + current_dir + '/dep/msvc/lib/') 
     env.Append(LINKFLAGS = '/SUBSYSTEM:WINDOWS') 
     env.Append(LIBS = ['user32', 'gdi32', \ 
        'winmm', 'imm32', 'ole32', 'oleaut32', 'version', \ 
        'uuid', 'glew32s', 'opengl32']) 
    else: 
     env = Environment(tools = ['mingw']) 
     env.Append(CCFLAGS = '-U__STRICT_ANSI__') # for boost::program_options on mingw 4.7 
     env.Append(LINKFLAGS = '-mwindows') 
     env.Append(LIBS = ['mingw32', 'SDL2', 'SDL2main', 'm', 'user32', 'gdi32', \ 
        'winmm', 'imm32', 'ole32', 'oleaut32', 'version', \ 
        'uuid', 'glew32', 'opengl32']) 
else: 
    env = Environment() 
    env.Append(LIBS = ['SDL2', 'pthread', 'm', 'dl', 'GL']) 

if ARGUMENTS.get('msvc', 0) != "1": 
    env.Append(CCFLAGS = '-fno-strict-aliasing') # for angelscript compile see doc 
    env.Append(CCFLAGS = '-std=c++0x -Wall -Wfatal-errors') 

env.Append(CCFLAGS = '-I ' + current_dir) # for boost find in include path 

if ARGUMENTS.get('release', 0) == "1": 
    if sys.platform != 'win32': 
     env.Append(CCFLAGS = '-DNO_OPENGL_CHECK -DSDL_ASSERT_LEVEL=1 -O2 -msse2') #-DNO_OPENGL_CHECK -DSDL_ASSERT_LEVEL=1 -O3 -msse2 
    else: 
     env.Append(CCFLAGS = '/MD') 
     env.Append(LIBS = ['SDLmain', 'SDL', 'msvcrt']) 
else: 
    if sys.platform != 'win32': 
     env.Append(LINKFLAGS=['-rdynamic']) # $(sdl2-config --static-libs) 
     env.Append(CCFLAGS = '-g') 
    else: 
     env.Append(CCFLAGS = '/MDd /Gm- /Zi -D_DEBUG /Od ') 
     env.Append(LINKFLAGS=['/INCREMENTAL']) 
     env['PDB'] = ['start.pdb'] 
     env['CCPDBFLAGS'] = ['${(PDB and "/Zi /Fd%s" % File(PDB)) or ""}'] 
     env.Append(LIBS = ['SDLmain_d', 'SDL_d', 'MSVCRTD', 'libcmt']) 

src = Glob('obj/*.cpp') 
src += Glob('obj/scene2d/*.cpp') 
src += Glob('obj/pugixml/*.cpp') 
src += Glob('obj/debug_support/*.cpp') 
src += Glob('obj/angelscript/*.cpp') 
src += Glob('obj/scriptarray/*.cpp') 
src += Glob('obj/scriptstdstring/*.cpp') 
src += Glob('obj/scriptbuilder/*.cpp') 
src += Glob('obj/scripthelper/*.cpp') 
src += Glob('obj/boost_libs_src/program_options/src/*.cpp') 
src += Glob('obj/boost_libs_src/smart_ptr/src/*.cpp') 
src += Glob('obj/boost_libs_src/system/src/*.cpp') 
src += Glob('obj/boost_libs_src/filesystem/src/*.cpp') 
src += Glob('obj/libwebp/*/*.c') 
src += Glob('obj/zlib/*.c') 
src += Glob('obj/libpng/*.c') 

prog = env.Program(target = 'start', source = src) 
संबंधित मुद्दे