📄 dx90sdk-update-gcc.txt
字号:
directx 9.0 software development kit update (summer 2003)gnu c compiler compatibility patch===============================================this patch has been tested with: gcc v3.2.3 gcc v3.3.3 gcc v3.4.1 (linux->win32 cross compiler) msc v6.0 + sp5 + ppI) Applying the patch------------------1. Install the directx sdk update to /c/DX90SDK (to match default Makefile variable values) or to any other dir. From now on, the sdk install directory will be called ${SDKDIR}. dx90updatesdk.exe size: 190,991,976 bytes md5: ed328da4033e18124801265ee91f690e2. cd ${SDKDIR}3. patch -p0 --dry-run < /path/to/dx90sdk-update-gcc.patch (if all goes well, no rejects... else read the special notes) patch -p0 < /path/to/dx90sdk-update-gcc.patch--Special notes for cross compilation on GNU/Linux systems (or anysupported platform for wine): - You can install the DX SDK using the wine win32 API emulation layer. The unzipping stage of the install will succeed, it's all that is required to continue. So don't panic if the install program breaks/crashes after the self unzip did succeed. - Then depending on your cvs program, you may require to unix'ify the endlines of all sources in the SDK before applying the patch. That can be required CVS uses to expand/replace endlines according to the host platform type, so it's very likely that if you do extract the xvidcore sources from a windows box, this step isn't mandatory, but if you're using a unix box (even cygwin), you may be obliged to proceed with: find ${SDKDIR} -name "*.cpp" -exec dos2unix {} \; find ${SDKDIR} -name "*.h" -exec dos2unix {} \;II) building strmbase.lib-------------------------1. cd ${SDKDIR}/Samples/C++/Directshow/BaseClasses2. make (this should output strmbase.lib)--Special notes for people cross compiling, or people who installedthe SDK elsewhere than /c/DX90SDK: - you can overide Makefile defaults in the make command line, just use something like this command line (adapt according to your build environment): make \ CXX=/opt/mingw32-cross/bin/i386-mingw32-g++ \ RANLIB=/opt/mingw32-cross/bin/i386-mingw32-ranlib \ DXTREE=${SDKDIR}III) Building your own apps---------------------------These variables should be defined in your Makefiles:DXTREE=${SDKTREE}DXBASECLASSES=$(DXTREE)/Samples/C++/DirectShow/BaseClassesCXXFLAGS += -DRELEASE \ -I$(DXTREE)/Include \ -I$(DXBASECLASSES) \ -include $(DXTREE)/mingw_dshow_port.hLDFLAGS += -L$(DXTREE)/Lib -lstrmiids \ $(DXBASECLASSES)/strmbase.lib \ -lole32 -loleaut32 -lstdc++So it's now time to build the XviD Dshow filter (the xvidcoresource dir is supposed to be ${xvidcore}):1. cd ${xvidcore}/dshow2. make (should output a xvid.ax file in a =build dir by default)--Notes for people using a cross compiler, or people who did installthe SDK elsewhere than /c/DX90SDK: - you can overide Makefile variables from the make command line, a fairly complete command could look like this, adapt to your build environment: make \ CC=/opt/mingw32-cross/bin/i386-mingw32-gcc \ CXX=/opt/mingw32-cross/bin/i386-mingw32-g++ \ WINDRES=/opt/mingw32-cross/bin/i386-mingw32-windres \ DXTREE=/mnt/data/windows/dx9sdkNB: with some win32-api headers from mingw.org, you may suffer multiple QACONTAINERFLAGS definitions. In that case you need to manually edit ${mingw_install}/include/ocidl.h; Search for QACONTAINERFLAGS. It should look like this: enum tagQACONTAINERFLAGS { ... } QACONTAINERFLAGS; Then change this to that: typedef enum tagQACONTAINERFLAGS { ... } QACONTAINERFLAGS; Noticed the additional typedef ? that's the point !
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -