codeblocks 使用汇总

codeblocks 使用汇总

集成本帖提到的所有补丁,非官方,双编译器(VC9、MinGW4.4.3)绿色版,解压密码:csdn   
>> http://portablecb.googlecode.com/files/LoveDEV.7z
<< 由于集成VC9,所以请试用后24小时内删除!

官方公告:http://forums.codeblocks.org/index.php/topic,12156.0.html
这段时间比较忙,主要是学习Code::Blocks的代码,并且为其提交补丁。

这几天我为CB提交了几个补丁,欢迎大家积极测试,特散分感谢!

--------------------------------------------------

http://blog.csdn.net/sdfgh2046/article/details/5812663

享受Code::Blocks编辑快感的几个关键 

原文地址:http://blog.csdn.net/Utensil/archive/2008/12/24/3593502.aspx

感谢Loaden的补充。此文是对帖子 http://wxforum.shadonet.com/viewtopic.php?t=22128 的总结和整理,按个人喜好做了取舍和重新排序。  

说明: 

1)以下需要设置的地方均在Settings->Editor...弹出的对话框中。 

2)不少命令都可针对当前行或选中的代码块,下文简称当前行或选中块。 

==日常编辑== 

    • 按住Ctrl滚滚轮,代码的字体会随你心意变大变小,对保护视力特别有好处。  
    • 在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦;相关设置:Mouse Drag Scrolling。  
    • Ctrl+D可复制当前行或选中块。 
    • Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。  
    • Tab缩进当前行或选中块,Shift+Tab减少缩进。 
    • 可拖动选中块使其移动到新位置,按住Ctrl则为复制到新位置。 
    • 按下Atl,再拖动鼠标,可以实现部分选择(即只选中一个区域内的字符,而不会包含它们所在行的其他字符)。 
    • 需要更大编辑空间时,F2和Shift+F2分别可以显隐下方Logs & others栏和左方的Management栏。 

==自动完成与缩写== 

1)优化代码自动完成功能:在Code-completion and symbol browser中,  
    • 将Automatically launch when typed # letter中的4改成2,这样打两个字母就会有提示了。  
    • 将Keyword sets to additionally include中1到9都勾上(可在Syntax highlighting 的keywords...中设置,其中1是C++关键字,3是Doxygen关键字;我曾将wxWidgets的类名都加入7并设置相应的字体(粗黑 体),看代码时特别爽)  
    • 将Delay for auto-kick-in when typing [.::->]拉到 200ms,这样快点出来提示  
    • 选中Case-sensitive match,防止一些无关的东西干扰,如果你想它帮你纠正大小写,那就去掉勾  
    • 在Keyboard short-cuts中将Edit->Code complete的快捷键由Ctrl+Space改为Alt+/,因为前者与中文输入法切换冲突,该快捷键为已经输入的(不是正在输入的)词提供自动完成。  

2)看Abbreviation一栏,里面定义了许多缩写(还可以自定义),只要输入这些缩写,并按Ctrl+J,就可以自动完成常用的代码框架,并将光标放在恰当的地方(自定义时用|表达)。常用的有:guard、class、switch等。 

3) 如果你声明了一个类,你可以在cpp文件中右击,Insert->All class methods without implementation...来插入你还没定义的方法的定义(省去不少打字的功夫哦),也可使用Insert->Class Method declaration/implementation...来插入一个方法的声明或定义。  

==导航相关== 

    • Ctrl+G 到达指定行,ALT+G 到达指定文件,Ctrl+Alt+G 到达指定函数(支持头文件中的函数定义),F11 切换源文件与头文件。 
    • Ctrl+PageUp 到达上一个函数,Ctrl+PageDown 到达下一个函数。 
    • Ctrl+B 添加书签,Alt+PageUp和Alt+PageDown可以切换书签。 
    • Ctrl+Shift+B可找到匹配的括号。 
    • 看长代码时,可右击,Folding->Fold All,然后慢慢展开来看,也可充分利用左方Management栏的Symbol浏览器。  
    • 在一个变量、函数或宏上右击,三个以Find开头的菜单项,分别可以为你转到它的声明、定义和找到所有出现的地方(按F2在下方Thread Search那里查看)。 
其他: 
    • General Settings中可以设置缩进、自动换行等细节。  
    • 让Code::Blocks永远记住你的Layout,尤其是debug的layout,善用debug工具栏。 
    • 备份C:/Documents and Settings/[你的用户名]/Application Data/codeblocks/Default.conf,如遇重装,将其放在codeblocks.exe所在目录,就不会丢失你的配置;这样也可以 打造出Code::Blocks的绿色版。

 

 

 

想想一个没有读过 世界顶级C++开发权威之一的牛人Scott Meyers (点击转到其主页)的《Effective C++》和《More Effective C++》两本巨著的编译器,和一个有读过这两本著作的编译器相比,真是高下立见。

前面都是废话。

打开Code::Blocks(采用中文语言包的界面),主菜单“设置” -> “编译器与调试器” ,选中GCC编译器。然后配置其编译器选项:

Enable Effective-C++ warnings....

 

这样配置,是让所有以后在Code::Blocks新建的,采用gcc编译器的C++项目,都会使用这个选项。如果你只是想在个别项目中使用,那么可以在具体项目中做此配置(打开工程之后,主菜单:项目->构建选项)。

 

有了这个选项,会带来什么好处呢?我们先考一下自己:

Code:

  1. #include <iostream>   
  2.   
  3. using   namespace  std;  
  4.   
  5. class  Person  
  6. {  
  7. public :  
  8.     virtual   void  Say()  
  9.     {  
  10.         cout << "I am a person."  << endl;  
  11.     }  
  12.       
  13.     ~Person()  
  14.     {  
  15.         cout << "bye-bye person."  << endl;  
  16.     }  
  17. };  
  18.   
  19. class  Beauty :  public  Person  
  20. {  
  21. public :  
  22.     Beauty()  
  23.         : _p (new   int )  
  24.     {  
  25.           
  26.     }  
  27.       
  28.     ~Beauty()  
  29.     {  
  30.         delete  _p;  
  31.     }  
  32.   
  33.    virtual   void  Say()  
  34.     {  
  35.         cout << "I am a beauty."  << endl;  
  36.     }  
  37.       
  38.       
  39. private :  
  40.     int * _p;  
  41. };  
  42.   
  43. int  main()  
  44. {      
  45.     return  0;      
  46. }  

以上代码存在哪些设计上的隐患呢? 语法是肯定没有问题的啦,一个没有读过书的编译器,肯定会听话地编译完以上代码。

但一个有读过的书的编译器,它会给出以下警告,带上简单翻译:

 

||=== Temp4Book, Debug ===|

main.cpp|7|warning: 'class Person' has virtual functions and accessible non-virtual destructor

(第7行,class Person拥有一个虚函数,可是它的析构函数不是虚的! 太可怕的设计错误了)

main.cpp|21|warning: 'class Beauty' has pointer data members

(第21行,class Beauty拥有一个指针数据成员,接下一行……)

main.cpp|21|warning:   but does not override 'Beauty(const Beauty&)'

(但是,你没有给Beauty定制拷贝构造函数!)

main.cpp|21|warning:   or 'operator=(const Beauty&)'

(同样,也没有重载它的赋值操作符!)

main.cpp|21|warning: 'class Beauty' has virtual functions and accessible non-virtual destructor

(第21行,class Beauty同样拥有一个虚函数,可是它的析构函数不是虚的! 原因在其基类上的,呵呵。)

||=== 已完成构建: 0 个错误, 5 个警告 ===|

 

你不信这些警告的重要性吗?可以买前面提到的那两本书,国内有出版。这里简单一例:

Code:

  1. void  test()  
  2. {  
  3.       Beauty b1;  
  4.       Beauty b2=b1;  
  5. }  

严重问题发生了,你能知道问题在哪吗?来做一道试题测试一下吧:)

 

http://student.csdn.net/space.php?do=question&ac=detail&qid=1839

 

 

 

第一次使用CodeBlocks,就遇到了中文问题的困扰 ,如下的写法,在编译时,出错: 

wxString msg(_T( " 中华人民共和国 " ));

error:converting to execution character set: Illegal byte sequence

呵,GCC在编译时,无法将汉字进行正确的转换,解决的办法是,明确告诉GCC编译器,输入的文件是中文的,这样就可以了,设置编译器参数,因为在 程序中使用中文,将是非常常见的,所以,我将设置全局的参数,如下:settings->Compiler and debugger,如下图:

 

设置编译选项:-finput-charset=GBK

 

 

Code::Blocks最近新带的插件工具:CppCheck。这是一款静态检查C++程序代码的工具。和C::B一样是一款开源的软件。

在SourceForge的主页是: sourceforge.net/apps/mediawiki/cppcheck/index.php 。

Cppcheck is an analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools, we don't detect syntax errors. Cppcheck only detects the types of bugs that the compilers normally fail to detect. The goal is no false positives.

CppCheck其实是一个独立的工具,完全脱离任何IDE可以运行,早先我就是独立使用它,但自打C::B把它给集成了,感觉使用起来更是方便了不少。

 

       新版的插件菜单中,可以找到CppCheck插件,不过事前你可能需要单独下载,安装好CppCheck。下载地址:

   sourceforge.net/projects/cppcheck/

下载安装 cppcheck: (有for windows版本,未曾实验)

http://sourceforge.net/projects/cppcheck/files/

 

root 安装

make & make install

 

      为了演示,直接上手。搞一些低级错误,让CppCheck检查一下:     

Code:

  1. #include <iostream>   
  2. #include <fstream>   
  3.   
  4. using  namespace  std;  
  5.   
  6. int  main()  
  7. {  
  8.     #define MAX_INT_ITEM_COUNT 100   
  9.       
  10.     int * p = new  int [MAX_INT_ITEM_COUNT]; //分配了内存   
  11.       
  12.     for  (int  i=0; i<MAX_INT_ITEM_COUNT; ++i)  
  13.     {  
  14.         p[i] = MAX_INT_ITEM_COUNT-i;  
  15.     }  
  16.           
  17.     return  0;    //没释放 p 就byebye了   
  18. }  

        运行插件,Code::Blocks 消息栏将显示检查结果:

 

   说的是: 在main.cpp 的第17行,存在“内存泄漏的可能,相关对象是:p。”

   呵呵,继续改一下代码:

Code:

  1. //... 前面代码略   
  2.     int * p = new  int [MAX_INT_ITEM_COUNT]; //分配了内存   
  3.       
  4.     for  (int  i=0; i<MAX_INT_ITEM_COUNT; ++i)  
  5.     {  
  6.         p[i] = MAX_INT_ITEM_COUNT-i;  
  7.     }  
  8.           
  9.     delete  p; //正确写法应是:delete[] p;   
  10.           
  11.     return  0;     
  12. //...   

不需编译,再从C::B菜单里运行一下CppCheck插件……这回是:

main.cpp|17|mismatchAllocDealloc : error : Mismatching allocation and deallocation: p|

意思是:在main.cpp文件里,第17行(上代码片段中的09行),有个“不匹配的内存分配与释放”的错误,对象仍然是:p。(new[] 出来的东西,要用delete[]释放,你非要说用delete也可以,那是因为你在用一个超级有问题的编译器....)

 

注意事项:

A) 显然,它不能检查一切。

B)但有意思的,它经常能查出你自己都想不到问题。(偶尔让你一身冷汗,连续120分钟不敢再边写代码边斜眼看边上的美女)

C)当然啦,有的它检查出来了,但倒也不一定就是天条,毕竟C++程序是自由的,C++程序员个个都会搞些暗爽的代码写法。

结合 Code::Blocks的一些问题

很大的工程,或者工程有超大的文件(往往是工具生成的那种),它检查起来是超慢的,这时C::B会先是死等,慢慢的,就会变成等死。

 

windows下 codeblocks 10.05安装配置

一、下载安装包

       如果您有安装以前版本,并不需要卸载。

       Windows安装下载页面:   http://www.codeblocks.org/downloads/26

       请下载图中所示的链接:

 

 

       高级用户须知:这个链接带有新版的 MinGW gcc编译环境,但并不是(mingw)官方 版本,而是TDM
gcc
 4.4.1 版本。如果您想另行安排,比如您只想用VC的编译器,可以下载上图中另一个链接。

 

二、安装必读!

    1)、请选择定制安装!custom 

    2)、选中全部插件

     不然,可能 类似 CppCheck的插件 ,就会找不到...

 

    3)、不看可能会后悔:修改安装目标路径。

       这不是Code::Blocks的错,而是 mingw gcc 的链接器 ln.exe 有个BUG,不能链接位于带空格或汉字路径下的文件。

      

    -------------------------------------------------------------------------------------

   余下的步骤,和一般软件安装也就差不多了。

 

三、配置编译环境

   1)、 运行Code::Blocks,第一次运行会弹出选择编译器,请选中gcc 编译器(通常是第一项)。

   2)、 进入主界面后,主菜单 Setting -> Compiler and debugger ...

             弹出对话框中,左边选中第一项:Global compiler setting.. 右边最上面选中“GNU GCC Compiler” (通常默认就是它)

            其下选中“Toolchain executables”, 点一下 Auto-detect,会让C::B自动检测到MinGW的安装路径(通常不用检查也是对的,MinGW如按上述步骤安装,它就在Code::Blocks的安装路径下)。

             进入MinGW的安装路径下的bin子目录,比如:C:/CodeBlocks/MinGW/bin.找一下是否有 “mingw32-make.exe”这个文件,如果没有,找到make.exe,复制一份,将复制品改名为 mingw32-make.exe。

           ( 同样方法,找一下是否有 mingw32-gcc.exe ,ming32-g++.exe两个程序,如果没有,分别复制gcc.exe 及 g++.exe,将复制品改名为 mingw32-gcc.exe 及mingw32-g++.exe。 我忘了到底有没有,大家就确认一下吧,有答案的话留言一下)

    3) 同一对话框内,左边切换到最后一项 “Debugger setting” 

          右边最上面的“Debugger intialization commands”下,输入 : handle SIGTRAP noprint

          这对调试某些带有调试信息的windows SDK库,有好处,否则调试器会不断停在操作系统的某些库的汇编代码上....

         同一页面,编辑框往下的多选框,除了最后一项明显不能选中以外,其它的都可以酌情选中(具体意思大家看一下文字也能理解,不能理解的话,可以安装上中文语言包以后,再查看)。

四、测试   

          点击主菜单:new -> Project  (或者直接在 Start here 页面上点击“Create a new project”)。 对话框中左边选中“Project”,右边在一堆图标中找到“Console application”。点击“Go”开始向导。

         向导第一步是欢迎页,进入下一步,选“C++”。

        下一个页面中, Project title 下输入 HelloCB ,不要带空格。Folder to create project in :中,通过末尾的小按钮,选择你要存储工程的父路径。同样不要带空格,比如新建一个c:/MyCPPCode 目录。

        再下一步中,不需要修改,通常选中的就是GNU gcc编译器了,并且默认选中要生成Debug和Release两个构建目标,如名所示,一者用于调试,一者用于发布。

       点击 Finish……打开项目树中的“main.cpp”文件。如果看不到项目树,请按 Shift  + F2。

      这是main.cpp里,默认的代码:

Code:

  1. #include <iostream>   
  2.   
  3. using  namespace  std;  
  4.   
  5. int  main()  
  6. {  
  7.     cout << "Hello world!"  << endl;  
  8.     return  0;  
  9. }  

       没错,就是著名的Hello world! 测试例程。按Ctrl + F9 ,编译之。如果一切设置无误,编译应能成功。要看编译信息,请按F2确保日志面板出现。 编译成功后,按 F9 运行……

       下载及使用我准备的最新中文语言包,以及如何做一些更好用的配置,下一节再讲。

 

五、重要补充

          windows vista , windows 7 用户必读:

        1), 您最好以Administrator 用户安装,使用code::blocks。

        2), 如果想要编写,以及调试 NT Service之类的程序,最好设置 codeblocks.exe  的兼容性为 “运行在Administrator身份”这下。当然这样设置之后,在win 7 等系统下,每次运行codeblocks,都要搞一下那个UAC对话框了。 

        linux,mac 用户,前述下载页,已经有提供多个发行版本的linux下载链接,请自行去官网下载。

         高手参看: C::B支持多种编译器,如果您有需要,请自行配置。    如果您有兴趣自编译新版c::b,可以下载源码,然后使用以前的8.02版加每夜构建升级包,从旧c::b里编译出一个新版c::b。

 

 

  Code::Blocks 提 供了许多工程模板,这包括:控制台应用、DirectX应用、动态连接库、FLTK应用、GLFW 应用、Irrlicht工程、OGRE应用、OpenGL应用、QT应用、SDCC应用、SDL应用、SmartWin应用、静态库、Win32
GUI应用、wxWidgets应用、wxSmith工程,另外它还支持用户自定义工程模板。在wxWidgets应用中选择UNICODE支持中文。
  Code::Blocks支持语法彩色醒目显示,支持代码完成(目前正在重新设计过程中)支持工程管理、项目构建、调试。
   Code::Blocks支持插件,目前的插件包括代码格式化工具AStyle;代码分析器;类向导;代码补全;代码统计;编译器选择;复制字符串到剪 贴板;调试器;文件扩展处理器;Dev-C++ DevPak更新/安装器;DragScroll,源码导出器,帮助插件,键盘快捷键配置,插件向导;To-Do列表;wxSmith;;wxSmith MIME插件;wsSmith工程向导插件;WindowsXP外观。
  Code::Blocks具有灵活而强大的配置功能,除支持自身的工 程文件、C/C++文件外,还支持AngelScript、批处理、CSS文件、D语言文件、Diff/Patch文件、Fortan77文件、 GameMonkey脚本文件、 Hitachi汇编文件、Lua文件、MASM汇编文件、Mathlab文件、NSIS开源安装程序文件、Ogre Compositor脚本文件、Ogre Material脚本文件、OpenGL Shading语言文件、Python文件、Windows资源文件、XBase文件、XML文件、nVidia
cg文件。识别Dev-C++工程、MS VS 6.0-7.0工程文件,工作空间、解决方案文件。

 

codeblocks插件介绍

 

众所周知CB的一个优点就是开放式架构提供灵活的插件开发和支持,我们也相信在今后的发展上插件对CB的贡献会越来越大。

下面是现有核心插件和贡献插件的简介列表:

 

Core Plugins 核心插件(系统初始化时会自动加载,由CB官方开发团队维护)

The core plugins are installed by default and offer the basic functions of Code::Blocks. The core plugins are maintained / developed by the official development team.

Autosave

Saves project files between intervals.

Class Wizard

Provides wizard for creating new classes.

Code Completion [这个插件非常重要,现在处于重写阶段,估计很快会合大家见面]

Provides  code completion functionality
and class browser.

 

Compiler [为大量编译器提供统一界面]

Provides support for various compilers in one interface.

Debugger

Provides support for various debuggers in one interface.

File Extensions
Handler

Adds extra file extension handlers.

Open Files List

Manages a list of all opened files (editors).

Projects Importer

Imports projects from other IDE’s, e.g. MS Visual Studio and DevC++.

Scripted Wizard

Provides scripted wizard functionality.

Source Code
Formatter
 [根据不同代码风格为你重新自动美化代码风格]

Formats source code files with specific style.

To-Do List

Adds to-do items to source code.

WinXP Look’n'Feel

Creates manifest file which enables the version 6.0 of the Common Controls on Windows XP.

 

 
Contrib Plugins[大众贡献版]

The user-contrib uted plugins are not installed by default and offer extended functionality for Code::Blocks. The contrib plugins are maintained / developed by third-party developers.

Auto Versioning

Helps you keep track of your project version and status.

Browse Tracker

Browse to previous source positions.

C::B Games

Games in a integrated development environment? You bet.

Code Profiler

Provides graphical interface to GNU GProf profiler.

Code Snippets

Manages small pieces of code (i.e. snippets).

Code Statistics

Shows various statistics from source code files.

Copy
Strings to Clipboard

Copies literal strings from the current editor to clipboard.

DevPak Installer

Installs and updates DevC++ DevPaks.

DragScroll

Enables dragging and scrolling with mouse.

Environment Variables

Sets environment variables within the focus of Code::Blocks.

Help plugin

Integrates third-party help files to the interface.

HexEditor plugin

Opens files in a Code::Blocks integrated HexEditor.

Keyboard Shortcuts

Manages menu shortcuts.

Koders [快捷方式搜索相关代码在koder网站]

Queries the Koders webpage for keywords.

KeyMacs plugin

KeyMacs (or Keyboard Macros)  plugin enables
Recording, Playback, and editing of keystroke macros.

RegEx Testbed

Regular expressions testbed.

Source Exporter

Exports source code files to other formats such as HTML and PDF.

Symbol Table

A simple graphical interface to the GNU symbol table displayer (nm).

ThreadSearch

Multi-threaded ‘Search in files’ with preview window.

Valgrind

Valgrind analysis tools integration.

wxSmith [快速开发wxWidgets界面程序]

RAD tool for creating wxWidgets dialogs.

Retrieved from "http://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins "

原文地址:http://www.cnblogs.com/-clq/archive/2012/01/31/2333247.html

时间: 2024-10-30 20:46:57

codeblocks 使用汇总的相关文章

【资料合集】阿里巴巴开源技术汇总——内含115个软件与100+技术文档、PDF下载

开源是孵化新技术领域的容器,开源是技术演进的强大推动力.多年来,阿里巴巴集团一直积极拥抱开源事业,无论是开源软件的应用.回馈以至自研技术的开源都非常活跃. 为了更好地让开发者们深入了解阿里开源,本文对社区内发布过的开源技术精品内容做了一次大汇总,包括115个阿里巴巴开源技术.阿里巴巴73款开源产品全向图.首届阿里开源峰会PDF+活动视频回顾等等. 阿里巴巴73款开源产品全向图 2016阿里巴巴73款开源产品全向图(9月制)点击图片可下载大图. 2016阿里巴巴73款开源产品全向图详细介绍 "阿里

360安全浏览器快捷键汇总

  360安全浏览器是很多人上网的首选.不过,它有很多快捷键,你都了解吗?今天,就让小编来跟大家分享360安全浏览器快捷键汇总,希望能对大家有所帮助. 360安全浏览器快捷键 您可以使用快捷键来快捷使用浏览器的功能,以下是360安全浏览器的快捷键: 选中地址栏: Alt + DCtrl + L 弹出地址栏下拉列表: F4 显示/隐藏侧边栏: Ctrl + Shift + S 显示/隐藏收藏栏: Ctrl + B 全屏显示: F11 打开新窗口: Ctrl + N 新建无痕(小号)窗口: Ctrl

Python中列表的一些基本操作知识汇总

  这篇文章主要介绍了Python中列表的一些基本操作知识汇总,皆属于Python的基本功,需要的朋友可以参考下 Python最基本的数据结构是序列(列表/元组).一个序列中的每个元素都分配有一个数字- 它的位置或索引.第一个索引是0,第二个索引是1,依此类推. Python有6内置类型的序列,但最常见的是列表和元组,我们将在本教程中看到. 有一些东西可以使用所有序列类型来做.这些操作包括索引,切片,加,乘,并检查成员.此外,Python已经内置函数查找序列的长度和搜索它的最大和最小的元素. P

关于PHP中常见数据类型的汇总

 本文整理了有关于PHP中常见的数据类型,感兴趣的朋友可以参考下 PHP 数据类型    PHP 支持八种原始类型(type).    四种标量类型:  string(字符串)  integer(整型)  float(浮点型,也作 double )  boolean(布尔型)    两种复合类型:  array(数组)  object(对象)    两种特殊类型:  resource(资源)  NULL(空)    查看变量类型    通过 gettype() 函数可以方便的查看某个变量的类型:

Win7恢复IE9桌面图标方法汇总

  在刚刚安装了Windows7系统之后,任务栏已默认Pin上了IE8,但是桌面却取消了IE浏览器图标,对于习惯将常用程序快捷方式放在桌面的朋友来说,没有浏览器图标还是很不适应的,今天就为大家汇总一下找回IE9图标的方法. 第一:常用程序都会在开始菜单中创建快捷方式及文件夹,打开开始菜单,找到Internet Explorer程序,右键点击之后,将其发送到"桌面快捷方式". 第二:打开这个位置,C:Program FilesInternet Explorer,找到iexplorer.e

异常处理汇总-后端系列

异常处理汇总:http://www.cnblogs.com/dunitian/p/4599258.html SignalR   01.SignalR:"System.Reflection.TargetInvocationException"类型的未经处理的异常在 mscorlib.dll 中发生 http://www.cnblogs.com/dunitian/p/5232229.html 02.SignalR代理对象异常:Uncaught TypeError: Cannot read

【问答合集】阿里视频云常见技术问题汇总——内含技术文档40+ 持续更新中

一.前言 我们发现现在非常多的客户对阿里视频云服务了解不多,本文档的核心目标是将用户使用阿里视频云服务(点播,直播,连麦)的常见问题做一个系统的归纳.这可能不仅仅是一个FAQ,我们会试图将具体实现给开发者讲清楚,希望开发者能够更加深入的了解视频云的核心团队的架构设计方案.并且提供一系列的解决方案.个人认为端SDK是最接近客户的,所以所有的问题出发点都是从端SDK来讲解的,但是会试图结合云端服务的设计将问题讲清楚. 二.汇总常见问题方案 2.1 点播服务相关 [视频点播]点播服务是什么?为什么需要

JBPM4常用错误汇总 收藏

JBPM4常用错误汇总 收藏 http://blog.csdn.net/cnham/archive/2009/12/16/5013068.aspx 1.在tomcat6.0下布署错误    基于JBPM4的web项目jsp页面发布出错 现象:    javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.s

JavaScript Window浏览器对象模型方法与属性汇总

  本文给大家汇总分享的是JavaScript Window浏览器对象模型方法与属性,十分的细致全面,这里推荐给大家,有需要的小伙伴可以参考下. Window 对象 所有浏览器都支持 window 对象.它表示浏览器窗口. 所有 JavaScript 全局对象.函数以及变量均自动成为 window 对象的成员. 全局变量是 window 对象的属性. 全局函数是 window 对象的方法. 1. open方法 语法格式: window.open(URL,窗口名称,窗口风格) 功能:打开一个新的窗