基于mipsel编译Qt4.6.2版本(有具体参数和编译时遇到的问题)
1.使用的configure配置为:
./configure -embedded mips -little-endian -xplatform qws/linux-mips-g++ -prefix /opt/qte462-mips -release -opensource -confirm-license -webkit -qt-zlib -qt-libpng -qt-libjpeg -qt-gif -I$QTDIR/include/libz -L$QTDIR/lib -no-qt3support -make libs -nomake examples -nomake demos -no-multimedia -no-phonon -no-phonon-backend -no-accessibility -no-script -no-scripttools -qconfig ranger
之前使用的:
./configure -embedded mips -little-endian -xplatform qws/linux-mips-g++ -prefix /opt/qte450-mips -confirm-license -qt-zlib -qt-libpng -qt-libjpeg -qt-gif -I$QTDIR/include/libz -L$QTDIR/lib -no-qt3support -no-phonon -no-phonon-backend -no-accessibility -no-scripttools -qconfig ranger
针对4.5.0版本
./configure -embedded mips -little-endian -xplatform qws/linux-mips-g++ -prefix /opt/qte450-mips -confirm-license -qt-zlib -qt-libpng -qt-libjpeg -qt-gif -I$QTDIR/include/libz -L$QTDIR/lib -no-qt3support -nomake examples -nomake demos -no-webkit -no-phonon -no-phonon-backend -no-accessibility -no-scripttools -qconfig ranger
./configure -embedded arm -little-endian -xplatform qws/linux-arm-g++ -prefix /opt/qte450-3560e -confirm-license -qt-zlib -qt-libpng -qt-libjpeg -qt-gif -no-qt3support -nomake examples -nomake demos -no-webkit -no-phonon -no-phonon-backend -no-accessibility -no-scripttools -qconfig ranger
2.在编译qtgui部分时遇到,但并不是每次都会遇到,在第一次编译时就不存在
mipsel-linux-g++ -c -include .pch/release-shared-emb-mips/QtGui -pipe -mips32 -fno-exceptions -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_GUI_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DPNG_NO_ASSEMBLER_CODE -DQT_NO_FONTCONFIG -DFT2_BUILD_LIBRARY -DFT_CONFIG_OPTION_SYSTEM_ZLIB -DQT_NO_OPENTYPE -DQT_NO_STYLE_MAC -DQT_NO_STYLE_WINDOWSVISTA -DQT_NO_STYLE_WINDOWSXP -DQT_NO_STYLE_GTK -DQT_NO_STYLE_WINDOWSCE -DQT_NO_STYLE_WINDOWSMOBILE -DQT_NO_STYLE_S60 -DQ_INTERNAL_QAPP_SRC -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -Ihttp://www.cnblogs.com/mkspecs/qws/linux-mips-g++ -I. -Ihttp://www.cnblogs.com/include/QtCore -Ihttp://www.cnblogs.com/include/QtNetwork -Ihttp://www.cnblogs.com/include -Ihttp://www.cnblogs.com/include/QtGui -I.rcc/release-shared-emb-mips -I../3rdparty/libpng -I../3rdparty/zlib -I../3rdparty/zlib -I../3rdparty/freetype/builds/unix -I../3rdparty/freetype/src -I../3rdparty/freetype/include -I../3rdparty/harfbuzz/src -Idialogs -I.moc/release-shared-emb-mips -I.uic/release-shared-emb-mips -o .obj/release-shared-emb-mips/qpnghandler.o image/qpnghandler.cpp
In file included from ../3rdparty/libpng/png.h:501,
from image/qpnghandler.cpp:53:
../3rdparty/libpng/pngconf.h:338: error: expected constructor, destructor, or type conversion before '.' token
../3rdparty/libpng/pngconf.h:339: error: '__dont__' does not name a type
make[1]: *** [.obj/release-shared-emb-mips/qpnghandler.o] 错误 1
make[1]:正在离开目录 `/home/yuchao/qte-4.6.2/src/gui'
网上提示:
http://forum.soft32.com/linux/conflict-ftstdlib-freetype-library-pngconf-ftopict439998.html
| /* If you encounter a compiler error here, see the explanation
| * near the end of INSTALL.
| */
Do anyone of you have a idea how to work around such problem? I read the
INSTALL file. There are two suggestion:
1. comment out following two lines:
| __png.h__ already includes setjmp.h;
| __dont__ include it again.;
2. use cexcept interface but I don't understand that.
我且将这两行注释掉。
3.编译QTScript的过程中
mipsel-linux-g++ -Wl,-rpath-link,/home/yuchao/qte-4.6.2/lib -fno-exceptions -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,/opt/qte462-mips/lib -Wl,-rpath,/opt/qte462-mips/lib -shared -Wl,-soname,libQtScript.so.4 -o libQtScript.so.4.6.2 obj/release/pcre_compile.o obj/release/pcre_exec.o obj/release/pcre_tables.o obj/release/pcre_ucp_searchfuncs.o obj/release/pcre_xclass.o obj/release/Assertions.o obj/release/ByteArray.o obj/release/HashTable.o obj/release/MainThread.o obj/release/RandomNumber.o obj/release/RefCountedLeakCounter.o obj/release/TypeTraits.o obj/release/CollatorDefault.o obj/release/CollatorICU.o obj/release/UTF8.o obj/release/JSBase.o obj/release/JSCallbackConstructor.o obj/release/JSCallbackFunction.o obj/release/JSCallbackObject.o obj/release/JSClassRef.o obj/release/JSContextRef.o obj/release/JSObjectRef.o obj/release/JSStringRef.o obj/release/JSValueRef.o obj/release/OpaqueJSString.o obj/release/InitializeThreading.o obj/release/JSGlobalData.o obj/release/JSGlobalObject.o obj/release/JSStaticScopeObject.o obj/release/JSVariableObject.o obj/release/JSActivation.o obj/release/JSNotAnObject.o obj/release/JSONObject.o obj/release/LiteralParser.o obj/release/MarkStack.o obj/release/TimeoutChecker.o obj/release/CodeBlock.o obj/release/StructureStubInfo.o obj/release/JumpTable.o obj/release/ARMAssembler.o obj/release/MacroAssemblerARM.o obj/release/JIT.o obj/release/JITCall.o obj/release/JITArithmetic.o obj/release/JITOpcodes.o obj/release/JITPropertyAccess.o obj/release/ExecutableAllocator.o obj/release/JITStubs.o obj/release/BytecodeGenerator.o obj/release/ExceptionHelpers.o obj/release/JSPropertyNameIterator.o obj/release/Interpreter.o obj/release/Opcode.o obj/release/SamplingTool.o obj/release/RegexCompiler.o obj/release/RegexInterpreter.o obj/release/RegexJIT.o obj/release/RegisterFile.o obj/release/ExecutableAllocatorPosix.o obj/release/MarkStackPosix.o obj/release/TCSystemAlloc.o obj/release/ArgList.o obj/release/Arguments.o obj/release/ArrayConstructor.o obj/release/ArrayPrototype.o obj/release/BooleanConstructor.o obj/release/BooleanObject.o obj/release/BooleanPrototype.o obj/release/CallData.o obj/release/Collector.o obj/release/CommonIdentifiers.o obj/release/ConstructData.o obj/release/CurrentTime.o obj/release/DateConstructor.o obj/release/DateConversion.o obj/release/DateInstance.o obj/release/DatePrototype.o obj/release/Debugger.o obj/release/DebuggerCallFrame.o obj/release/DebuggerActivation.o obj/release/dtoa.o obj/release/Error.o obj/release/ErrorConstructor.o obj/release/ErrorInstance.o obj/release/ErrorPrototype.o obj/release/CallFrame.o obj/release/Executable.o obj/release/FunctionConstructor.o obj/release/FunctionPrototype.o obj/release/GetterSetter.o obj/release/GlobalEvalFunction.o obj/release/Identifier.o obj/release/InternalFunction.o obj/release/Completion.o obj/release/JSArray.o obj/release/JSAPIValueWrapper.o obj/release/JSByteArray.o obj/release/JSCell.o obj/release/JSFunction.o obj/release/JSGlobalObjectFunctions.o obj/release/JSImmediate.o obj/release/JSLock.o obj/release/JSNumberCell.o obj/release/JSObject.o obj/release/JSString.o obj/release/JSValue.o obj/release/JSWrapperObject.o obj/release/Lexer.o obj/release/Lookup.o obj/release/MathObject.o obj/release/NativeErrorConstructor.o obj/release/NativeErrorPrototype.o obj/release/Nodes.o obj/release/NumberConstructor.o obj/release/NumberObject.o obj/release/NumberPrototype.o obj/release/ObjectConstructor.o obj/release/ObjectPrototype.o obj/release/Operations.o obj/release/Parser.o obj/release/ParserArena.o obj/release/PropertyDescriptor.o obj/release/PropertyNameArray.o obj/release/PropertySlot.o obj/release/PrototypeFunction.o obj/release/RegExp.o obj/release/RegExpConstructor.o obj/release/RegExpObject.o obj/release/RegExpPrototype.o obj/release/ScopeChain.o obj/release/SmallStrings.o obj/release/StringConstructor.o obj/release/StringObject.o obj/release/StringPrototype.o obj/release/Structure.o obj/release/StructureChain.o obj/release/UString.o obj/release/HeavyProfile.o obj/release/Profile.o obj/release/ProfileGenerator.o obj/release/ProfileNode.o obj/release/Profiler.o obj/release/TreeProfile.o obj/release/DateMath.o obj/release/FastMalloc.o obj/release/Threading.o obj/release/MainThreadQt.o obj/release/ThreadingQt.o obj/release/Grammar.o obj/release/qscriptclass.o obj/release/qscriptclasspropertyiterator.o obj/release/qscriptcontext.o obj/release/qscriptcontextinfo.o obj/release/qscriptengine.o obj/release/qscriptengineagent.o obj/release/qscriptextensionplugin.o obj/release/qscriptprogram.o obj/release/qscriptstring.o obj/release/qscriptvalue.o obj/release/qscriptvalueiterator.o obj/release/qscriptable.o obj/release/qscriptfunction.o obj/release/qscriptobject.o obj/release/qscriptclassobject.o obj/release/qscriptvariant.o obj/release/qscriptqobject.o obj/release/qscriptglobalobject.o obj/release/qscriptactivationobject.o obj/release/qscriptdeclarativeobject.o obj/release/qscriptdeclarativeclass.o obj/release/qscriptast.o obj/release/qscriptastvisitor.o obj/release/qscriptgrammar.o obj/release/qscriptsyntaxchecker.o obj/release/qscriptlexer.o obj/release/qscriptdate.o obj/release/moc_qscriptextensionplugin.o -L/home/yuchao/qte-4.6.2/lib -lQtCore -L/home/yuchao/qte-4.6.2/lib -lpthread
obj/release/JSValue.o: In function `QTJSC::toUInt32SlowCase(double, bool&)':
JSValue.cpp:(.text+0x114): undefined reference to `trunc'
obj/release/JSValue.o: In function `QTJSC::toInt32SlowCase(double, bool&)':
JSValue.cpp:(.text+0x244): undefined reference to `trunc'
obj/release/JSValue.o: In function `QTJSC::JSValue::toInteger(QTJSC::ExecState*) const':
JSValue.cpp:(.text+0x374): undefined reference to `trunc'
obj/release/JSValue.o: In function `QTJSC::JSValue::toIntegerPreserveNaN(QTJSC::ExecState*) const':
JSValue.cpp:(.text+0x3ec): undefined reference to `trunc'
obj/release/DateMath.o: In function `QTWTF::timeClip(double)':
DateMath.cpp:(.text+0x30c): undefined reference to `trunc'
collect2: ld returned 1 exit status
make: *** [http://www.cnblogs.com/lib/libQtScript.so.4.6.2] 错误 1
在QTScript中引用的是src/3dparty/javascriptcore的文件,故将相应目录*/JavaScriptCore/wtf/MathExtras.h中将trunc定义打开后trunc问题ok
4.webkit库链接:
并且可以看到它只需要链接的qt库为: -L/home/yuchao/qte-4.6.2/lib -lQtGui -L/home/yuchao/qte-4.6.2/lib -lQtNetwork -lQtCore
rm -f libQtWebKit.so.4.6.2 libQtWebKit.so libQtWebKit.so.4 libQtWebKit.so.4.6
mips-linux-g++ -Wl,-rpath-link,/home/yuchao/qte-4.6.2/lib -fno-exceptions -Wl,--no-undefined -Wl,--gc-sections -Wl,-O1 -Wl,-rpath,/opt/qte462-mips/lib -Wl,-rpath,/opt/qte462-mips/lib -shared -Wl,-soname,libQtWebKit.so.4 -o libQtWebKit.so.4.6.2 obj/release/pcre_compile.o obj/release/pcre_exec.o obj/release/pcre_tables.o obj/release/pcre_ucp_searchfuncs.o obj/release/pcre_xclass.o obj/release/Assertions.o obj/release/ByteArray.o obj/release/HashTable.o obj/release/MainThread.o obj/release/RandomNumber.o obj/release/RefCountedLeakCounter.o obj/release/TypeTraits.o obj/release/CollatorDefault.o obj/release/CollatorICU.o obj/release/UTF8.o obj/release/JSBase.o obj/release/JSCallbackConstructor.o obj/release/JSCallbackFunction.o obj/release/JSCallbackObject.o obj/release/JSClassRef.o obj/release/JSContext
.....................
.....................
j/release/JSSVGTransform.o obj/release/JSSVGTransformList.o obj/release/JSSVGTRefElement.o obj/release/JSSVGTSpanElement.o obj/release/JSSVGUnitTypes.o obj/release/JSSVGUseElement.o obj/release/JSSVGViewElement.o obj/release/JSWebSocket.o obj/release/JSAbstractWorker.o obj/release/JSDedicatedWorkerContext.o obj/release/JSSharedWorker.o obj/release/JSSharedWorkerContext.o obj/release/JSWorker.o obj/release/JSWorkerContext.o obj/release/JSWorkerLocation.o obj/release/JSDOMParser.o obj/release/JSXMLHttpRequest.o obj/release/JSXMLHttpRequestException.o obj/release/JSXMLHttpRequestProgressEvent.o obj/release/JSXMLHttpRequestUpload.o obj/release/JSXMLSerializer.o obj/release/JSXPathNSResolver.o obj/release/JSXPathException.o obj/release/JSXPathExpression.o obj/release/JSXPathResult.o obj/release/JSXPathEvaluator.o obj/release/JSXSLTProcessor.o obj/release/CSSGrammar.o obj/release/HTMLNames.o obj/release/HTMLElementFactory.o obj/release/JSHTMLElementWrapperFactory.o obj/release/XMLNames.o obj/release/UserAgentStyleSheetsData.o obj/release/XPathGrammar.o obj/release/moc_qwebplugindatabase_p.o obj/release/moc_DnsPrefetchHelper.o obj/release/moc_qwebframe.o obj/release/moc_qwebhistoryinterface.o obj/release/moc_qwebpluginfactory.o obj/release/moc_qwebinspector.o obj/release/qrc_WebCore.o obj/release/qrc_WebKit.o -L/home/yuchao/qte-4.6.2/lib -lQtGui -L/home/yuchao/qte-4.6.2/lib -lQtNetwork -lQtCore -lpthread
obj/release/Collector.o: In function `JSC::Heap::markCurrentThreadConservativelyInternal(JSC::MarkStack&)':
Collector.cpp:(.text._ZN3JSC4Heap39markCurrentThreadConservativelyInternalERNS_9MarkStackE+0x74): undefined reference to `__libc_stack_end'
obj/release/JSValue.o: In function `JSC::toUInt32SlowCase(double, bool&)':
JSValue.cpp:(.text._ZN3JSC16toUInt32SlowCaseEdRb+0xf8): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::toInt32SlowCase(double, bool&)':
JSValue.cpp:(.text._ZN3JSC15toInt32SlowCaseEdRb+0xc0): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::JSValue::toInteger(JSC::ExecState*) const':
JSValue.cpp:(.text._ZNK3JSC7JSValue9toIntegerEPNS_9ExecStateE+0xc0): undefined reference to `trunc'
obj/release/JSValue.o: In function `JSC::JSValue::toIntegerPreserveNaN(JSC::ExecState*) const':
JSValue.cpp:(.text._ZNK3JSC7JSValue20toIntegerPreserveNaNEPNS_9ExecStateE+0x3c): undefined reference to `trunc'
obj/release/DateMath.o: In function `WTF::timeClip(double)':
DateMath.cpp:(.text._ZN3WTF8timeClipEd+0x5c): undefined reference to `trunc'
obj/release/qt_runtime.o:qt_runtime.cpp:(.text._ZN3JSC8Bindings22convertQVariantToValueEPNS_9ExecStateEN3WTF10PassRefPtrINS0_10RootObjectEEERK8QVariant+0x4d0): more undefined references to `trunc' follow
collect2: ld returned 1 exit status
make[1]: *** [http://www.cnblogs.com/http://www.cnblogs.com/lib/libQtWebKit.so.4.6.2] 错误 1
make[1]:正在离开目录 `/home/yuchao/qte-4.6.2/src/3rdparty/webkit/WebCore'
make: *** [sub-webkit-make_default-ordered] 错误 2
(1)在src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h中将trunc定义打开后
trunc问题ok
(2)undefined reference to `__libc_stack_end
在Collector.cpp将UCLIBC_USE_PROC_SELF_MAPS定义关闭
但在4.5版本中是否遇到这个问题,还是修改了其他宏如__UCLIBC__:
#ifdef __UCLIBC__
// versions of uClibc 0.9.28 and below do not have // pthread_getattr_np or pthread_attr_getstack.
#if __UCLIBC_MAJOR__ == 0 && \
(__UCLIBC_MINOR__ < 9 || \
(__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ <= 30))
#define UCLIBC_USE_PROC_SELF_MAPS 1
#include <stdio_ext.h>
extern int *__libc_stack_end;
#endif
#endif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
网上参考:QtEmbedded在MIPS平台编译的一个常见错误
http://www.cuteqt.com/blog/?p=911
此外见http://www.qtcn.org/bbs/read.php?tid=26709&page=2
本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息、原文链接、原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途。 谢谢合作。
原文链接:QtEmbedded在MIPS平台编译的一个常见错误
错误输出为
libQtWebKit.so: undefined reference to `trunc’
libQtWebKit.so: undefined reference to `lroundf’
libQtWebKit.so: undefined reference to `roundf’
libQtWebKit.so: undefined reference to `lround’
这些函数是定义在Linux下的数学库里的,也就是libm.so或者libm.a。但是有些toolchina在做基本库的时候,并没有把这些函数包括进去,你在Linux Shell命令行下,可以用
$ nm libm.so | grep trunc
或者
$ strings libm.so |grep trunc
查看是否定义了对应的函数。
最直观的解决方法就是重新编译一个带有trunc/roundf这些函数的数学库。也可以造福其它引用libm库的应用或应用框架。
如果你只是编译Qt的话,还有一个解决方法,就是自己去实现这些函数。因为Windows版的数学库就是不带这些函数的,所以Qt的代码里已经自带了这些函数的实现代码。我以QtEmbedded-4.5.2为例,看代码
src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h
105 #if COMPILER(MSVC) || COMPILER(RVCT)
106
107 inline long lround(double num) { return static_cast<long>(num > 0 ? num + 0.5 : ceil(num - 0.5)); }
108 inline long lroundf(float num) { return static_cast<long>(num > 0 ? num + 0.5f : ceilf(num - 0.5f)); }
109 inline double round(double num) { return num > 0 ? floor(num + 0.5) : ceil(num - 0.5); }
110 inline float roundf(float num) { return num > 0 ? floorf(num + 0.5f) : ceilf(num - 0.5f); }
111 inline double trunc(double num) { return num > 0 ? floor(num) : ceil(num); }
112
113 #endif
上面看到的这段代码只在MSVC的情况下可以编译,我们自然可以自己的宏去控制它是否编译了,这个宏可以在qmake.conf里的QMAKE_CXXFLAGS或者QMAKE_CFLAGS环境变量中添加
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4.直接使用新的webkit库时遇到问题:
swapp: can't resolve symbol '_ZN9QHashData14detach_helper2EPFvPNS_4NodeEPvEPFvS1_Eii' in lib '/mnt/lib/libQtWebKit.so.4'
显然webkit的新版本没有将原有修改合并进来
http://www.cnblogs.com/yc_sunniwell/archive/2010/06/08/1753704.html
基于mipsel编译Qt4.6.2版本(有具体参数和编译时遇到的问题)的更多相关文章
- Windows下MinGW编译Qt4
还真不是吹,这个问题折磨我一天……前些天转载了一篇关于<Eclipse+Qt开发环境设置>和<Eclipse+MinGW+Qt开发环境设置>两片文章,里面讲述了QT的开源版本q ...
- 基于MT6752/32平台 Android L版本驱动移植步骤
基于MT6752/32平台 Android L版本驱动移植步骤 根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Mediatek Turnkey架构 ...
- 利用VS2008编译器编译Qt4.8.2的MySQL驱动
准备:安装VS2008和Qt 4.8.2,并且设置环境变量(QTDIR=C:\Qt\4.8.2 和 path+=C:\Qt\4.8.2\bin) 一.下载mysql数据库,安装(完全安装)到C盘根目录 ...
- 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(五):测试项目
基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...
- VS2005下如何安装配置编译Qt4.6
本文将使用简单的几个步骤说明在VC 2005下如何编译安装并开发Qt4.6应用程序,其实大部分方法和Qt4.6.0是一样的,不过Qt4.6.0集成了Qt Creater,目录的形式有点改变了,现在我就 ...
- 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用)
目录 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用) 背景 下载地址 仓库地址 安装部署 msys2 安装 配置环境变量 ...
- 基于.NetCore开发博客项目 StarBlog - (12) Razor页面动态编译
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- android中导入低版本project可能会遇到的编译问题(转自: Victor@Beijing)
使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题. (1)Unable to resolve target 'android-5' 因为本机中现在使用的是2.2的SDK ...
- Win10系统下编译GDAL1.9.2版本
环境说明: 1.Win10企业版.64位: 2.VS2012旗舰版: 3.GDAL1.9.2 GADL编译 1.解压GDAL压缩包至F:\GDAL\gdal-1.9.2: 2.设置GDAL编译后安装目 ...
随机推荐
- 一起学Python:元组
元组 Python的元组与列表类似,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号. >>> aTuple = ('et',77,99.9)>>> ...
- 表达式树Expression
Expression表达式树动态查询 在进行数据列表的查询中,我们通常会使用两种方式进行查询: linq查询 数据库sql语句查询 这样固然可以实现查询,本人之前也都是这么做的,因为查询的条件很少.使 ...
- WPF依赖属性(续)(2)依赖属性与附加属性的区别
原文:WPF依赖属性(续)(2)依赖属性与附加属性的区别 接上篇,感谢各位的评论,都是认为依赖属性的设计并不是为了节省内存,从大的方面而讲是如此.样式,数据绑定,动画样样都离不开它.这篇 ...
- Android-apktool-就从此处开始反编译之旅
前言 一直听说过反编译,感觉很高大上,一直没自己用过,今天因缘巧合之下,终于要开始逐渐认识,了解和学习一下反编译了~先给自己说下加油,鼓励一下下 apktool的下载和安装 apktool 下载地址: ...
- $.extend(true,{},a,b)解析
原文:$.extend(true,{},a,b)解析 版权声明: https://blog.csdn.net/bsfz_2018/article/details/81738437 什么是$.exten ...
- python 和为S的两个数字
输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 运用到的知识; 1.判断是否是统一类型: if not isinsta ...
- MongoDB 通过自带工具命令进行备份表,再将备份表还原出数据
创建一个bat文件 在其中输入以下3行 第1行进入工具mongodump所在的目录 第2行 将Adam数据库里面的 第3行 将上面存在C:\Data\Dump\Adam\文件夹里面的TBLQuickS ...
- hdu 3966 树链分割第一3遍
真的不好意思说话.你写得越多,对风暴各种问题泄露,更离谱,有什么错有.. .但是,仍然有一个.同时经过规范的编写清晰的代码.不能认为是理所当然... 树桩阵列版: #include<cstdio ...
- σ 代数与测度(measures)
1. definition Let A be a collection of subsets(集合的集合体,collection of subsets) of a sample space Ω,A i ...
- silverlight,WPF动画终极攻略之迟来的第三章 动画整合篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之迟来的第三章 动画整合篇(Blend 4开发) 有个问题想请教下大家,我仿了腾讯的SL版QQ,相似度95%以上.我想写成教程教大家怎么开发出来,会不会 ...