显示标签为“Eclipes”的博文。显示所有博文
显示标签为“Eclipes”的博文。显示所有博文

2009年3月23日星期一

编译SGE库

SGE是一个非常实用也挺不错的SDL图型外部库,在我的项目中我使用它进行一些简单的2D做图,并且使用它的Sprite classes。接下来简单地介绍如何编译它。

在WIN32环境下,使用MinGW+MSYS, 首先编译SDL,网上有很多帮助,然后见编译完成的SDL的静态库放入C:\MinGW\lib,将头文件放入C:\MinGW\include\SDL。

然后使用MSYS进入SGE目录,输入make就可以进行编译。如果输入make install,会Builds 一个 dynamic SGE library 并且 将SGE的 headers 放入例如C:\MinGW\include\SDL里。make 的时候可能会有错误,可以根据错误提示进行改正,例如:可能会遇到sge_surface.cpp:148: error: invalid initialization of non-const reference of type 'char*&' from a temporary of type 'char**'这样的错误,只需在sge_surface.cpp:148将va_start((va_list*)ap, format); 改成va_start((va_list&)ap, format); 即可。

 

如果以上方法有问题,或者无法编译dll库。那么可以试试以下方法 (点击下图,可看大图):

SGE_Build_Eclipse1.使用Eclipse, 然后新建一个C++项目,将SGE的源文件加入其中,如图A所示。

并新建一个sge.cpp文件,输入#include "sge.h"   int main(int argc, char** argv) {  return 0;    }

2.在setting里进行一些编译所需的简单设定如图B, C, D所示。

3.现在还没完成,如果没有SDL_image话,那么需要对sge_config.h手动进行设定,如图E所示,加入画红线的语句,去掉其上面的语句。

4.现在编译会又会遇到,sge_surface.cpp:148: error: invalid initialization of non-const reference of type 'char*&' from a temporary of type 'char**'这样的错误,同样的,如图F 所示将va_start((va_list*)ap, format); 改成va_start((va_list&)ap, format); 即可。同一类型的错误,都可以这样改正。

好了,大功告成,现在在/yourproject/Debug里你会找到SGE.DLL。

2009年2月20日星期五

如何编译Live555库

Live555是一个用C++编写的库,它可以用于发送很接受数据流通过RTSP, RTP 和 SDP链接。大名鼎鼎的VLC就是用它来接受在线媒体流,处理RTSP SDP连接的。我现阶段项目的部分程序需要用到这个库也是用它接受实时媒体流,使用后,发现它的功能很强大。

编译它很简单(使用MinGW),进入它的目录后

输入./genMakefiles mingw

然后输入make

完成后, 在\live\testProgs你会发现很好用的openRTSP.exe!注意:在mingw:  make-3.81版本编译会不通过,但是在make-3.79.1.exe则会成功。原因请看这里。

live555_compile_eclipe_mingw32如果想要得到Live555的DLL,这比较麻烦一点,我使用的是eclipse + MinGW环境:右边是截图(点击可看大图),如果熟悉eclipse + MinGW环境,应该很容易理解以下步骤。注意图C的设定,这里设定Defined symbols很重要,在图D可以发现,这里还需要加上"ws2_32"库。

好了,大功告成,现在在/yourproject/Debug里你会找到live555.DLL。

2008年12月12日星期五

利用ffmpeg和sdl库播放视频经验

首先要设定Properties for Project: 在MinGW C Linker里-->Libraries --> 加入mingw32, SDLmain, SDL, avformat, avcodec, avutil,并设定想对应的正确的Library search path,在Directories里加入所需的Include path.
然后使用http://www.dranger.com/ffmpeg/tutorial02.c上的tutorial02.c这个例子。
接下来就可以编译和Build啦,(对了,在Build artifact里Artifact Type选用Shared Library或Executable都可以 )。
最后在Command Prompt里进入debug目录输入:例如:projectname.exe examplevideo.avi 就可以播放视频了,实在很简单吧。

最后,推荐一个网站:http://www.arjanhouben.nl/SDL_ffmpeg/

2008年12月9日星期二

Ffmpeg的使用, Eclipse gdb

如果是用C++的话,然后进入Project Properties-->设置好include和lib linker。然后进行编译,如果有问题,无法编译例如avcodec.h里的内容或编译avcodec.h里的内容出错(这常常发生),那么就要点击这个project,然后点击鼠标右键选Open Declaration或按F3。进入可见#include "libavutil/avutil.h"之类的声明,注意这里的#include路径和我们在Project Properties-->设置好include路径是不同的。解决它的最好方法就是,在Project Properties-->include,多设一个路径以满足其要求,例:加上"C:\DA_SDK\ffmpeg-export-snapshot"。
gdb简单的说是一个Debug工具。
MinGW自己并不配gdb,必需自己下载,并安装。注意:必须下载一个6.6版本,或以下版本的,6.8版本的不能在Eclipse中使用,至少现在是这样的。http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=20507 可以直接下载已编译的版本,直接可以使用,吧BIN的exe拷贝到MinGW的bin里就可以,也可以把include里的.h拷贝到MinGW的include里。
现在终于可以进行Debug了。选择Project按鼠标右键,选Debug As --> Open Debug Dialog -->
在Environment例如:new --> Name: PATH Value: C:\DA_SDK\ffmpeg-export-snapshot\lib_dll;%PATH%。
在Debugger里:例如:Debugger: 选MinGW gdb Debugger 在Main: GDB debugger: C:\MinGW\bin\gdb.exe,其他选项可以保持不变。
现在可以进行Debug了,可以点击Elcipse工具条上的小虫,然后进入Debug环境。



2008年12月3日星期三

开始改用SVN啦

http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/
这个文章介绍了如何结合使用 Subversion 和 Eclipse,很完整。
接下来,简单介绍一下,我对SVN的使用心得:
这里只谈Eclipse:
首先,如同上面给的链接的做法,完成前期设定。
然后Windows --> Open Perspective --> Other... --> SVN Repository Exploring
这时可以对SVN Repository 进行修改。(也可以点击Eclipse右上角的图标进行Perspective 的改变)
--> New --> New Remote Folder
--> 建立自己的项目目录
然后 --> 进行分支设定(以下部分内容来自互联网)
+-trunk 保存项目开发的主线。
+-branches 保存项目的各种开发分支。
+-tags (保存项目的标签,也就是创建后永远不会修改的分支,例如发布release版本,它是某个项目,某个时间的一个快照,每次提交一个修订版本其实都是一个精确的快照。)

简单的说:就是-->trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。

附注:
常用分支模式: 转载自:http://blog.csdn.net/windone0109/archive/2008/09/10/2908117.aspx
a、发布分支:在代码发展到一定阶段,建立发布分支,将当前的一个版本取出来,拷贝到branches目录下,进行全面严酷的测试,如发现BUG则在当前版本进行修复,并同步更新trunk中的BUG,经测试完成后,将文件拷贝到tags目录中发布,并提交给客户。
b、特性分支:如果需要作复杂的修改,会影响到trunk代码的稳定性,则建议建立一个特性分支,等特性稳定之后,再和truck主干合并。
------------------------------------------------------
NOW使用trunk作为主要的开发目录。
一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测 试、文档、制作安装程序、打包等)结束后,代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。
当下一 个版本/阶段的开发任务此时,如果发现了上一个已发行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(Developing Version)无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。开始,继续在trunk进行开发。

待一切都搞定后,现在可以开始使用SVN进行版本控制啦。
右击Project在 Eclipse 的项目视图,并且从菜单中选择 Team --> Share Project, 选择 SVN,然后单击 Next --> 接下来就很简单了,这里不再说明。
值得注意的是:如果将文件添加到项目中,它不会自动成为版本控制的一部分 —— 需要明确将其添加到特定的存储库中。右击新文件,然后选择 Team --> Add to Version Control
当然了,我们也可以进行,“更新项目” 版本控制系统的重要特性之一是其他开发人员能够随时继续开发,并在准备好时提交其变更,但是我现在只是一个人进行编程,暂时不需要用到这个功能。这个功能可以下载这些变更,并将其与本地副本集成。 右击要更新的项目,然后从菜单中选择 Team --> Update。Eclipse 将从存储库中检索任何变更,并尝试将它们与本地副本合并。
对我们来说重要的功能是“提交更改” 如果确定了新的代码可以编译,并且已经对变更进行测试,这时就可以把它们放入Subversion 存储库。右击项目,并从菜单中选择 Team --> Commit。Eclipse 会显示一个 Commit 对话框。
SVN还有很多很好的功能,具体请看IBM的帮助文档。

现在谈谈SVN for Window的最最简单用法,先下载一个SVN的Window版本,然后安装。选中你所要check out 的文档,按鼠标右键,选SVN Checkout,在URL of repository里填上你的路径(这个路径你可以用例如http:/.../trunk/abcd/),自己创建一个Checkout directory,然后点OK。接下来,你就有一个带SVN标志的文件夹,你可以把你所要进行文档版本管理的文件放入这个文件夹里,现在就是最后一步啦,点击这个文件夹,点击鼠标右键然后点SVN Commit,完成了,这时文档就上传到.../trunk/abcd/里去了。

2008年11月25日星期二

在Eclipse建立SDL Extension Libraries

在Eclipse建立SDL Extension Libraries (Setting up SDL Extension Libraries in Eclipse)
从http://www.libsdl.org/下载 SDL Windows development library
每一个 extension libary 有三个主要部分:

1. The header file.
2. The lib file.
3. The *.dll file(s)

将 header file 存到 MinGW include folder. It should be at C:\MinGW\include\SDL.
将lib file 存到MinGW lib folder. The MinGW lib folder should be at C:\MinGW\lib.
再 提取 *.dll file(s) 到 C:\WINDOWS\SYSTEM32 (This is so whenever you make an SDL extension app, the program will be able to find the *.dll file(s) even if they're is not in the same directory as the *.exe)

但是存放.lib 和头文件的位置也不用和上面所说的一样,但是要记住放置的位置:)


SDL是用C编写的,但是也支持C++,同时其他多种语言,太好了,我们可以用自己熟悉的语言使用它。我在以后的实例中使用C++来使用它。

现在在Eclipse中进行一些设定:
properties --> C/C++ build --> Setting --> GCC Compiler --> Directories --> Include paths (-I) --> 加入所有需要的Include
properties --> C/C++ build --> Setting --> MinGW C Linker --> Libraries --> Include search path (-L) --> 加入所有需要的Library的Path --> 在Libraries (-I)里加入 mingw32 SDLmain SDL 请注意:要依次加入!!

linker的名称为 :
-lmingw32
-lSDLmain
-lSDL

另一个值得注意的点:#include 的写法,因为我在properties --> C/C++ build --> Setting --> GCC Compiler --> Directories --> Include paths 只写了例如:C:\SDL-devel-1.2.13-mingw32

如果使用的是Qt Eclipse Integration,就不需要进行以上操作,只需对.pro文档进行设定,在.pro文档中加入SDL的include和lib名称和路径。

2008年11月19日星期三

开篇 and 安装Qt

因为我的Diplomarbeit需要设计一个软件,今后的一系列文章将分享软件设计过程中的一些心得,由于我是学电子的,对软件设计及编程水平不高,如果文章有错误,请读者大方指出。
我做的软件是 Online Analysis Tool of Robotic Experiment, 也就是机器人实验的在线分析工具,简称暂时为:OATRE

因为要使用Qt, 首先介绍如何安装Qt:
部分翻译来自:
http://labs.trolltech.com/blogs/2007/07/11/develop-qt-applications-in-eclipse/
首先必须安装下列的程序 Download and install the following ingredients:

然后通过 Qt Eclipse Integration --> Start Eclipse with MinGW 启动。
打开 Eclipse 的 HELP 点击 Qt Development User Guide 然后 进入 Getting Started试着开始执行第一个例子。 New Project --> Qt folder --> Qt Gui Project --> Next 或者可以改一些设定。
注意:在 C/C++ Projects View 里点选这个Project 右键鼠标--> Properties 检查是否正确设定 Qt Properties --> Use Qt Version: 系统里当前的Qt 版本。
Window --> Show View --> Other --> Qt --> Qt C++ Widget Box 可让Qt C++ Widget Box出现在View里,然后就可以方便地使用Qt C++ Widget Box。