LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3721|回复: 4

创建Lazarus(Linux下的Delphi)平台的开发环境──For Slackware

[复制链接]
发表于 2007-5-19 01:37:53 | 显示全部楼层 |阅读模式
一、Lazarus是什么?
      http://www.lazarus.freepascal.org/上是这样说的:
Lazarus is the class libraries for Free Pascal that emulate Delphi. Free Pascal is a GPL'ed compiler that runs on Linux, Win32, OS/2, 68K and more. Free Pascal is designed to be able to understand and compile Delphi syntax, which is of course OOP. Lazarus is the part of the missing puzzle that will allow you to develop Delphi like programs in all of the above platforms. Unlike Java which strives to be a write once run anywhere, Lazarus and Free Pascal strives for write once compile anywhere. Since the exact same compiler is available on all of the above platforms it means you don't need to do any recoding to produce identical products for different platforms.
我的理解是,Lazarus是一个基于FreePascal编译器的功能强大的RAD开发平台,类似于Borland公司的Delphi / Kylix ,但她属于自由软件,可免费使用 !write once compile anywhere!可以说这才是真编译、真正的跨平台,这与Java是有本质的不同的!说到Linux下的RAD,不得不提一下Kylix,很久以前,Borland开发了基于Linux的Kylix,由于Kylix的核心开发人员被微软挖掉后,Borland就基本停止对 Kylix进行维护了,不过,即便如此,但在国外仍然具有相当数量的Kylix使用者,他们靠着打自己Kylix社区的各种补丁来过着日子。

二、安装Lazarus
      先到:www.lazarus.freepascal.org 下载最新的版本,比如目前的版本是:
        fpc-2.0.4-0.i586.rpm   
        fpc-src-2.0.4-0.i386.rpm
        lazarus-0.9.22-0.i386.rpm
对了,该站目前好象还没放有tgz的包,不过有rpm的包也足够了,不是有个rpm2tgz的么!
把这3个包转换一下:
       rpm2tgz  fpc-2.0.4-0.i586.rpm
       rpm2tgz  fpc-src-2.0.4-0.i386.rpm
       rpm2tgz  lazarus-0.9.22-0.i386.rpm
转换成功以后就可以分别  installpkg 这3个 tgz的包了 !

三、安装后的配置
     通过上步的安装,这时候进入 X 环境,直接startlazarus,即可启动Lazarus了!启动的速度真的是快啊!我现在的环境是 VPC下64M内存 Slackware11+FluxBox,环境是够恶劣的了! 细心的你这时候应该能发现,这时候Lazarus直接编译工程就会出现提示找不到类库等错误的,难道Lazarus不支持Slackware ?
      我通过分析,突然发现,原来是fpc.cfg这个关键配置的缘故!在Slackware Linux下要自己建立一个fpc.cfg文件的,并把fpc.cfg文件放到/etc/下边 !
以下是我的fpc.cfg文件:
[PHP]
#
# Example fpc.cfg for Free Pascal Compiler
#

# ----------------------
# Defines (preprocessor)
# ----------------------

#
# nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed
#
# -d is the same as #DEFINE
# -u is the same as #UNDEF
#

#
# Some examples (for switches see below, and the -? helppages)
#
# Try compiling with the -dRELEASE or -dDEBUG on the commandline
#

# For a release compile with optimizes and strip debuginfo
#IFDEF RELEASE
  -OG2p3
  -Xs
  #WRITE Compiling Release Version
#ENDIF

# For a debug version compile with debuginfo and all codegeneration checks on
#IFDEF DEBUG
  -g
  -Crtoi
  #WRITE Compiling Debug Version
#ENDIF

# set binutils prefix
#IFDEF FPC_CROSSCOMPILING
  -XPi386-linux-
#ENDIF

# ----------------
# Parsing switches
# ----------------

# Pascal language mode
#      -Mfpc      free pascal dialect (default)
#      -Mobjfpc   switch some Delphi 2 extensions on
#      -Mdelphi   tries to be Delphi compatible
#      -Mtp       tries to be TP/BP 7.0 compatible
#      -Mgpc      tries to be gpc compatible
#      -Mmacpas   tries to be compatible to the macintosh pascal dialects
#
# Turn on Object Pascal extensions by default
#-Mobjfpc

# Assembler reader mode
#      -Rdefault  use default assembler
#      -Ratt      read AT&T style assembler
#      -Rintel    read Intel style assembler
#
# All assembler blocks are AT&T styled by default
#-Ratt

# Semantic checking
#      -S2        same as -Mobjfpc
#      -Sc        supports operators like C (*=,+=,/= and -=)
#      -Sa        include assertion code.
#      -Sd        same as -Mdelphi
#      -Se<x>     compiler stops after the <x> errors (default is 1)
#      -Sg        allow LABEL and GOTO
#      -Sh        Use ansistrings
#      -Si        support C++ styled INLINE
#      -SI<x>     set interface style to <x>
#         -SIcomCOM compatible interface (default)
#         -SIcorbaCORBA compatible interface
#      -Sm        support macros like C (global)
#      -So        same as -Mtp
#      -Sp        same as -Mgpc
#      -Ss        constructor name must be init (destructor must be done)
#      -St        allow static keyword in objects
#
# Allow goto, inline, C-operators, C-vars
-Sgic

# ---------------
# Code generation
# ---------------

# Uncomment the next line if you always want static/dynamic units by default
# (can be overruled with -CD, -CS at the commandline)
#-CS
#-CD

# Set the default heapsize to 8Mb
#-Ch8000000

# Set default codegeneration checks (iocheck, overflow, range, stack)
#-Ci
#-Co
#-Cr
#-Ct

# Optimizer switches for i386 compiler
# -Og        generate smaller code
# -OG        generate faster code (default)
# -Or        keep certain variables in registers (still BUGGY!!!)
# -Ou        enable uncertain optimizations (see docs)
# -O1        level 1 optimizations (quick optimizations)
# -O2        level 2 optimizations (-O1 + slower optimizations)
# -O3        level 3 optimizations (same as -O2u)
# -Op        target processor
#     -Op1  set target processor to 386/486
#     -Op2  set target processor to Pentium/PentiumMMX (tm)
#     -Op3  set target processor to PPro/PII/c6x86/K6 (tm)

# Optimize always for Size and PII
#-OG2p3


# -----------------------
# Set Filenames and Paths
# -----------------------

# Slashes are also allowed under dos

# path to the messagefile, not necessary anymore but can be used to override
# the default language
#-Fr/usr/lib/fpc/2.0.4/msg/errore.msg
#-Fr/usr/lib/fpc/2.0.4/msg/errorn.msg

# searchpath for includefiles
#-Fi/pp/inc;/pp/rtl/inc

# searchpath for units and other system dependent things
-Fu/usr/lib/fpc/2.0.4/units/i386-linux
-Fu/usr/lib/fpc/2.0.4/units/i386-linux/*
-Fu/usr/lib/fpc/2.0.4/units/i386-linux/rtl
#-Fu~/fpc/packages/base/*/units/i386-linux;~/fpc/fcl/units/i386-linux;~/fpc/rtl/units/i386-linux

# searchpath for libraries
-Fl/usr/lib/gcc/i486-slackware-linux/3.4.6
#-Fl/pp/lib
#-Fl/lib;/usr/lib


# -------------
# Linking
# -------------

# generate always debugging information for GDB (slows down the compiling
# process)
#      -gc        generate checks for pointers
#      -gd        use dbx
#      -gg        use gsym
#      -gh        use heap trace unit (for memory leak debugging)
#      -gl        use line info unit to show more info for backtraces
#      -gv        generates programs tracable with valgrind
#      -gw        generate dwarf debugging info
#
# Enable debuginfo and use the line info unit by default
#-gl

# always pass an option to the linker
#-k-s

# Always strip debuginfo from the executable
-Xs


# -------------
# Miscellaneous
# -------------

# Write always a nice FPC logo ;)
-l

# Verbosity
#      e : Show errors (default)       d : Show debug info
#      w : Show warnings               u : Show unit info
#      n : Show notes                  t : Show tried/used files
#      h : Show hints                  m : Show defined macros
#      i : Show general info           p : Show compiled procedures
#      l : Show linenumbers            c : Show conditionals
#      a : Show everything             0 : Show nothing (except errors)
#      b : Show all procedure          r : Rhide/GCC compatibility mode
#          declarations if an error    x : Executable info (Win32 only)
#          occurs
#
# Display Info, Warnings, Notes and Hints
-viwn
# If you don't want so much verbosity use
#-vw

#
# That's all folks
#
[/PHP]      
      好了,注意下黑体字的地方和确认一下Lazarus的环境选项是否和下图一致!如果没什么问题,那么就可以说是万事具备了!
      有了如此优美的Lazarus,还不赶紧去写个数据库应用 :cool:  !

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2007-5-19 23:20:30 | 显示全部楼层
好像不错的样子。
回复 支持 反对

使用道具 举报

发表于 2007-5-22 20:44:30 | 显示全部楼层
对Lazarus也算是有感情了。以前在Win下最熟手的就是Delphi。后来搞算法,用的就是Free Pascal。
若说fpc.cfg影响整个集成开发环境,应该是以下这几段:
-Fu/usr/lib/fpc/2.0.4/units/i386-linux
-Fu/usr/lib/fpc/2.0.4/units/i386-linux/*
-Fu/usr/lib/fpc/2.0.4/units/i386-linux/rtl
#-Fu~/fpc/packages/base/*/units/i386-linux;~/fpc/fcl/units/i386-linux;~/fpc/rtl/units/i386-linux

# searchpath for libraries
-Fl/usr/lib/gcc/i486-slackware-linux/3.4.6

以前编过一个For FreePascal的IDE。所以对FP比较熟。只可惜现在用Pascal的机会很少了。真是很喜欢Pascal这种优雅的语言。
回复 支持 反对

使用道具 举报

发表于 2007-5-23 17:29:00 | 显示全部楼层
基于GTK1的?不错,速度方面肯定没问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-23 17:55:11 | 显示全部楼层
可以开发 基于gtk ,gtk2 ,gnome ,win32 ,wince ,carbon ,qt  等等 的应用 !

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表