2012-01-04 67 views
1

我有问题链接搅拌机的窗口。我使用CMake和使用mimgw编译器(mingw32-g ++。exe C++编译器)和(mingw32-gcc.exe c编译器)创建我的makefile。编译/链接搅拌机的窗口

我从
https://svn.blender.org/svnroot/bf-blender/trunk/blender
https://svn.blender.org/svnroot/bf-blender/trunk/lib/windows

http://wiki.blender.org/index.php/Dev:2.5/Doc/Building_Blender/Windows/MinGW/CMake

到LIB \ WINDOWS \ GCC
这里所有的链接错误有关规定获得源是其中的几个: (tif_pixarlog.o):(.text + 0x172d):undefined指向`deflateInit_'(文本+ 0x172d):undefined指向'deflateInit_'(文本+ 0x172d):undefined指向'deflateInit_'

LIB \ Windows \ GCC \ openimageio \ lib中/ libOpenImageIO.a(sysutil.cpp.obj):sysutil.cpp :(文本+ 0x32):未定义参考`GetProcessMemoryInfo @ 12'

LIB \ windows \ gcc \ openimageio \ lib/libOpenImageIO.a(socketinput.cpp.obj):socketinput.cpp :(.text + 0x45c2):undefined reference to WSASetLastError @ 4

in my lib \ windows \ gcc \ openimageio有一个批处理文件(oiio-的build.bat)我猜这是由CMake的

cmake ..\oiio\src\ -G "MinGW Makefiles"^
    -DBUILDSTATIC=1^
    -DBOOST_CUSTOM=0^
    -DBOOST_ROOT=..\lib\windows\gcc\boost\^
    -DBoost_USE_STATIC_RUNTIME=ON^
    -DLINKSTATIC=ON^
    -DILMBASE_HALF_LIBRARIES=..\lib\windows\gcc\openexr\lib\libHalf.a^
    -DILMBASE_IMATH_LIBRARIES=..\lib\windows\gcc\openexr\lib\libImath.a^
    -DILMBASE_ILMTHREAD_LIBRARIES=..\lib\windows\gcc\openexr\lib\libIlmThread.a^
    -DILMBASE_IEX_LIBRARIES=..\lib\windows\gcc\openexr\lib\libIex.a^
    -DOPENEXR_ILMIMF_LIBRARIES=..\lib\windows\gcc\openexr\lib\libIlmImf.a^
    -DILMBASE_INCLUDE_DIR=..\lib\windows\gcc\openexr\include^
    -DOPENEXR_INCLUDE_DIR=..\lib\windows\gcc\openexr\include^
    -DZLIB_INCLUDE_DIR=..\lib\windows\zlib\include^
    -DZLIB_LIBRARY=..\lib\windows\zlib\lib\libz.a^
    -DPNG_LIBRARY=..\lib\windows\png\lib\libpng.a^
    -DPNG_PNG_INCLUDE_DIR=..\lib\windows\png\include^
    -DJPEG_LIBRARY=..\lib\windows\jpeg\lib\libjpeg.lib^
    -DJPEG_INCLUDE_DIR=..\lib\windows\jpeg\include^
    -DTIFF_LIBRARY=..\lib\windows\tiff\lib\libtiff.lib^
    -DTIFF_INCLUDE_DIR=..\lib\windows\tiff\include^
    -DCMAKE_INSTALL_PREFIX=..\lib\windows\gcc\openimageio^
    -DUSE_OPENGL=OFF^
    -DUSE_TBB=OFF^
    -DUSE_FIELD3D=OFF^
    -DUSE_QT=OFF^
    -DUSE_PYTHON=OFF^
    -DCMAKE_BUILD_TYPE=Release 
mingw32-make install 

产生原来的lib \ WINDOWS \ GCC \ oiio做es不存在。

编辑:试着用scons编译搅拌器2.71,我想如果我不从混合器文件夹运行python,我得到*找不到SContruct文件。错误

所以

与python26 \ python.exe scons的/ scons.py我得到

ValueError: zero length field name in format: 
    File "D:\blender-source\blender\SConstruct", line 54: 
    EnsureSConsVersion(1,0,0) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Script\SConscript.py", line 607: 
    env = self.factory() 
    File "D:\blender-source\blender\scons\scons-local\SCons\Script\SConscript.py", line 587: 
    default_env = SCons.Defaults.DefaultEnvironment() 
    File "D:\blender-source\blender\scons\scons-local\SCons\Defaults.py", line 88: 
    _default_env = SCons.Environment.Environment(*args, **kw) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Environment.py", line 1003: 
    apply_tools(self, tools, toolpath) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Environment.py", line 107: 
    env.Tool(tool) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Environment.py", line 1787: 
    tool(self) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Tool\__init__.py", line 183: 
    self.generate(env, *args, **kw) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Tool\default.py", line 41: 
    SCons.Tool.Tool(t)(env) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Tool\__init__.py", line 183: 
    self.generate(env, *args, **kw) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Tool\dmd.py", line 131: 
    env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '') 

与python27 \ python.exe scons的/ scons.py我得到

scons: warning: VC version 12.0 not installed. C/C++ compilers are most likely not set correctly. 
Installed versions are: ['9.0'] 
File "D:\blender-source\blender\SConstruct", line 143, in <module> 
WindowsError: [Error 2] The system cannot find the file specified: 
    File "D:\blender-source\blender\SConstruct", line 207: 
    opts.Update(env) 
    File "D:\blender-source\blender\scons\scons-local\SCons\Variables\__init__.py", line 173: 
    exec open(filename, 'rU').read() in {}, values 
    File "<string>", line 3: 
    None 
    File "c:\python27\lib\subprocess.py", line 710: 
    errread, errwrite) 
    File "c:\python27\lib\subprocess.py", line 958: 
    startupinfo) 

回答

2

CMake + Mingw32没有经过长时间的测试,但是SCons + Mingw64绝对有效,因为Blender搭建机器人每晚也会使用它:http://builder.blender.org/buildslaves/mingw64_scons_anthony

从构建的slave列表中可以看到没有mingw32 slave,我不确定在不久的将来会有什么。

无论如何,有了SCons和Mingw64,你应该有一个直接的方式来运行编译过程。只要确保你已经安装了Mingw64,以及Python 2.6或Python 2.7。然后查看搅拌机资源和lib/mingw64。在Blender源根目录下使用C:\ Python27 \ python.exe scons \ scons.py开始编译过程。这应该是开箱即用的。

+0

scons.py脚本给我一个错误:scons:***找不到SConstruct。 产生错误消息的代码行如下: raise SCons.Errors.UserError(“No SConstruct file found。”) – Frank 2014-09-02 01:10:23