Lazarus常见问题解答
概述
什么是拉撒路?
为什么生成的二进制文件这么大?
1.项目|编译器选项|代码|智能链接(-CX)->选中 2.项目|编译器选项|链接|调试|取消选中除从可执行文件中删除符号(-Xs)之外的所有符号 3.项目|编译器选项|链接|链接样式|链接智能(-XX)->选中
我需要ppc386.cfg还是fpc.cfg?
如何编译Lazarus?
光盘 拉扎勒斯 使全部干净
光盘 拉扎勒斯 使全部干净 LCL_平台 = 夸脱
在没有Lazarus IDE的情况下,是否可以构建Lazaru项目?
如何在没有Lazarus IDE的情况下构建其他使用LCL的Free Pascal程序?
需要什么版本的FPC?
Lazarus 1.0.8至少需要FPC 2.6.2。 Lazarus 1.0至少需要FPC 2.6.0。 Lazarus 2.x至少需要FPC 3.0.0 Lazarus 3.0至少需要FPC 3.2.0
我不能编译Lazarus
检查编译器的版本是否正确 检查(fpc)库是否来自同一版本 检查编译器安装路径中是否有空格。确保没有! 检查您是否有fpc.cfg而没有旧的ppc386.cfg 另请查看与操作系统相关的常见问题 如果你仍然卡住了,请在论坛或Lazarus邮件列表上询问
如何在可执行文件中嵌入一个小文件,而不需要单独的文件? 如何嵌入资源?
Lazarus使用的各种文件扩展名的含义是什么?
|
||
|
||
|
||
|
| |
|
| |
|
||
|
||
|
||
|
||
|
||
|
||
|
为什么是TForm。 ClientWidth/ClientHeight与TForm相同。 宽度/高度
错误
'致命:a和b之间的循环单位引用'
单元 一 ;
接口
使用 b条 ;
实施
结束 .
单元 b条 ;
接口
使用 一 ;
实施
结束 .
单元 一 ;
接口
实施
使用 b条 ;
结束 .
单元 b条 ;
接口
实施
使用 一 ;
结束 .
类型
A级 = 班 ( 基本A级 )
//A级的其余部分
结束 ;
类型
B类 = 班 ; //远期申报
基本A级 = 班
//参考B类
结束 ;
B类 = 班
//引用BaseClassA
结束 ;
当我这样做的时候 var mytext:text; 要声明一个文本文件,我得到“Unit1.pas(32,15)Error:Errorintypedefinition”。 我该如何解决这个问题?
无功功率,无功功率
我的文本文件 : 文本文件 ;
我的文本 : 系统 . 文本 ;
使用打印机时出错。 BeginDoc公司
当我试图编译一个项目时,收到一条错误消息“Cannot find Unit…”
当我试图编译一个项目时,收到一条错误消息“Cannot find Unit interfaces”
将环境选项中的编译器设置为用于编译Lazarus的编译器。 还要仔细查看“环境选项”,看看您是否为Lazarus目录和FPC源目录使用了正确的路径。 检查编译器配置文件fpc.cfg是否只有一个版本-对于Linux/Unix系统,它应该位于/etc/中,或者与用于Windows系统的fpc编译器位于同一目录中。 尝试运行“fpc-vt bogus”来检查系统中使用的是哪个fpc.cfg。 如果你把编译器更新到新版本,盗版经常会潜入; 它们可能位于主目录中,也可能位于构建新编译器的同一目录中。 删除这些! 使用在“环境选项”中选择的编译器重建LCL(或完全重建Lazarus)。 您可以使用工具->构建Lazarus来实现这一点。 在执行此操作之前,请检查工具->配置构建Lazarus中的当前设置。 您也可以尝试更改当前为项目选择的小工具集。 例如,Lazarus附带的示例项目“objectinsperct”默认设置为gtk。 编译这个项目肯定会让你在Windows平台上“找不到单元接口”。 在中将小部件集更改为默认值(Win32) 项目选项|编译器选项。。。 应该可以解决这个问题。
当我编译一个使用LCL单元的项目时,我会得到一个链接器错误
/路径/to/lazarus/lcl/units/x86_64-linux/wsimglist.o:在函数“REGISTERCUSTOMIMAGELIST”中: /path/to/lazarus/lcl//widgetset/wsimglist.pp:266:未定义对“WSRegisterCustomImageList”的引用
确保您的项目使用LCL包。 您可以在项目检查器中进行检查。 确保单元“接口”被用作程序的第一个单元。
在行:{$R*.DFM}我如何解决这个问题(FPC<2.4.0的Lazarus)?
您需要.dfm文件的文本版本。 默认情况下,D5及更高版本执行此操作。 如果您有较旧的文件: 中高音 + 2012财年 将布局视为文本并粘贴/复制。 如果您有一个text.dfm文件,只需将其复制到.lfm文件即可。 用lazers(在lazarus/tools中)创建一个文件lazers yourform.lrs yourform.sfm 将以下初始化部分添加到
初始化
{$I yourform.lrs}
'找不到标识符LazarusResources'
访问对象的事件时, 例如 ,按钮的onclick事件,我得到以下错误。 找不到错误单元:stdCtrls
'致命:内部错误XXXXYYZZW'
致命错误:找不到[…]使用的[…],不兼容的ppu=[文件名],包[包名称]
它是用另一个FPC版本编译的; 它是用搜索路径中没有的其他一些ppu文件编译的(取决于); 您错误配置了一些搜索路径。
如果路径的最后一个字符是空格,则Lazarus无法打开项目
strToFloat-EConvertError:“0.nnn”是无效的浮点
调试器
如何设置/配置调试
如何检查属性?
为什么调试器不显示某些变量/结构(“无此类符号”/“不完整类型”)
属性 数组。。。 (动态阵列) 嵌套过程中的变量 “上下文中没有此类符号” “不完整类型”
如何从使用Lazarus的包中调试FCL组件
-Fu/usr/local/lib/fpc/$fpcversion/units/$fpctarget/*
打开外壳端子 cd/user/local/share/src/fpc-2.3.1/fpc/fcl-db/ sudo make clean all安装install_PREFIX=/usr/local OPT=-gl
清除所有安装 安装_刷新 = /usr/本地 选择 = -全球
Mac上的GDB问题
如何使用日志文件进行调试?
如何使用日志文件调试IDE本身?
--调试log = lazarusdebuglog.txt
为Lazarus做出贡献/做出改变
我创建了一个补丁,将IDE消息表单停靠在“源代码编辑器”表单上(底部)
+-------------------++--+ |菜单||| +-------------------+| | +--++---------------+| | |PI||源编辑器||CE| +--+| || | +--+| || | | |+---------------++--+ |OI公司|+-------------------+ |||条消息| +--++-------------------+
我已经修复/改进了Lazarus。 如何将更改添加到Lazarus官方源代码中?
如何安装多个Lazarus副本?
如何成为SVN和错误跟踪程序中的Lazarus开发人员和访问管理人员?
在哪里。。。 定义
虚拟键常量
使用IDE
如何使用“标识符补全”?
我可以更改代码编辑器的字体和颜色吗?
如何禁用特定的编译器警告消息?
IDE命令行选项有哪些?
Linux操作系统
在编辑字段中键入会生成重复的字母
1-在系统设置->首选项->输入法中禁用(或设置为“无”)输入法
2-在/etc/profile(系统范围)中添加以下三行
export GTK_IM_MODULE=GTK-IM-context-simple export QT_IM_MODULE=简单 export XMODIFIERS=@im=无
3-添加名为 输入方法.sh 仅包含/etc/profile.d(系统范围)中上面的3行
4-在主目录~/.xprofile(每个用户)中添加上面的3行。 如果主目录中没有~/.xprofile,则应该创建一个。
5-创建包含相同3行的Lazarus启动脚本。 (只影响拉撒路)
在没有IDE的情况下如何在Linux上调试?
使干净 ; 制作 选择 = -数据调试 ddd拉扎罗斯
我现在可以调试了,但ddd找不到我的源代码,或者抱怨它们不包含代码。 那是什么?
使用ddd菜单中的“Change directory”命令,选择源所在的目录。 这种方法的缺点是,您现在无法使用开始时使用的程序的源代码(例如lazarus)。 因此,可能需要多次更改目录。 在ddd中,转到[Edit][gdb-settings]并设置搜索路径 创建$(HOME)/.gdbinit文件,如下所示:
目录/your/path/to/lazarus 目录/your/path/to/lazarus/lcl 目录/your/path/to/lazarus/lcl/include
我在链接过程中收到一个错误,该错误表示/usr/bin/ld:cannot find-l<some lib>
/usr/bin/ld:无法找到-lgdk
基于包的分发 您需要安装提供lib<somelib>.so或lib<somerib>.a文件的包。 linux下的动态库具有.so扩展名,而静态库具有.a扩展名。在某些linux发行版上,您已经安装了包(rpm,deb)<packagename>,它提供了<some lib>,但您还需要开发包(rpm、deb),通常称为<packangename>-dev,它包含.a(静态库)和/或.so(动态库)。
一些发行版具有查找哪个包包含文件的命令: 曼德里瓦
urpmf库<somelib>.so
将列出包含名为lib<somelib>的文件的所有包。因此,必须安装以-devel结尾的包
Debian公司
安装apt-file实用程序(apt-get-install-apt-file),然后
apt-file搜索库<somelib>.so
将列出包含名为lib<somelib>的文件的所有包。因此,必须安装以-dev结尾的包
SuSE公司
SuSE将gtk-devel-libs安装在/opt/gnome/lib(或用于64位的/opt/gnome/lib64)下,它不在标准的lib路径中。 只需将其添加到/etc/fpc.cfg。 (-Fl/opt/gnome/lib)。
基于源代码的分发和手动编译(LFS) 确保路径中有一个lib<somelib>.a,并且它包含正确的版本。 要让链接器找到动态库,请创建一个名为lib<some lib>.so To lib<some-lib><version>-x,y.so的符号链接(和/或对于静态库;lib<somet-lib>.a To lib<seme-lib><version>-x,y.a)。
自由BSD :作为基于源代码的发行版,还要确保在fpc.cfg和/或Lazarus库路径中有-Fl/usr/local/lib。 请记住,GTK1.2在FreeBSD下以“gtk12”作为包名。(与glib相同)注意:这一点最近有所改变。 最新的端口也有gtk-12和glib-12。 您可能会遇到这个问题,因为FPC需要“更少”的,您需要将它们符号化:
#作为root
光盘 /usr/local/lib && ln-s libglib-12.so libglib12.so 光盘 /usr/X11R6/lib && ln-s libgtk-12.so libgtk12.so 光盘 /usr/X11R6/lib && ln-s libgdk-12.so libgdk12.so
NetBSD公司 :作为基于源代码的发行版,还要确保在fpc.cfg和/或Lazarus库路径中有-Fl/usr/pkg/lib
费多拉 :在“添加/删除软件”面板中搜索:“gtk2-devel”,“glibc-devel”( 请看这里 ),“libx11-devel”
我在链接过程中收到一条警告:警告:“crtbeginS.o”(或“crtendS.o”)未找到
巴特@simenon ~$gcc—打印文件名crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS。 o个
#gcclib的路径 #ifdef cpui386 #-如果您有32位fpc,请使用Fl/usr/lib/gcc/x86_64-linux-gnu/5:在此处填写正确的路径 #结尾 #ifdef cpux86_64 -Fl/usr/lib/gcc/x86_64-linux-gnu/5 #结尾
如何将Kylix 2项目转换为Lazarus项目?
重命名所有使用的CLX Q单元,如QForms、QControls、QGraphics。。。 到VCL对应项中:窗体、控件、图形。。。 将LResources添加到每个表单源的uses部分 将所有.xfm文件重命名或复制为.lfm文件。 将.dpr文件重命名或复制为.lpr文件。 将“Interfaces”添加到.lpr文件的uses部分。 删除{$R*.res}指令 删除{$R*.xfm}指令 将{$modeobjfpc}{$H+}或{$modedelphi}{$H+}指令添加到.pas和.lpr文件中 将初始化节添加到每个表单源的末尾,并为.lrs文件(Lazarus资源文件)添加include指令:
初始化
{$I单元1.lrs}
可以通过以下位置的lazers工具创建.lrs文件:(lazarusdir)/tools/lazres。 例如:/ 激光装置1.lrs装置1.lfm
修复差异。 LCL尚不支持VCL的所有属性,CLX也不完全兼容VCL。
为了使其更加独立于平台,请减少单元库(已弃用)引用,并尽可能使用baseunix/unix等本地FPC单元进行替换。 这对于支持linux/x86以外的其他目标(包括macOS、FreeBSD和linux/x86_64)是必要的
编译lazarus时,编译器找不到单元。 例如:gtkint.pp(17,16)致命:找不到单位GLIB
提示: 您可以看到哪个配置文件与“ppc386-vt bogus”一起使用 删除任何ppc386.cfg,因为它确实已过时。
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl -Fu/usr/lib/fpc/$fpcversion/unities/$fpctarget/*
这些路径的第一部分(/usr/lib/fpc)取决于您的系统。 在某些系统上,例如/usr/local/lib/fpc/。 提示: 您可以使用“ppc386-vt伪”查看搜索路径
禁止:-Fu(lazarus_source_directory)/lcl 禁止:-Fu(lazarus_source_directory)/lcl/interfaces/gtk
如果您想为所有fpc项目添加lcl,请确保这两个路径如下所示,并位于上述fpc-lib路径之后:
-Fu(lazarus_source_directory)/lcl/units/$fpctarget -Fu(lazarus_source_directory)/lcl/units/$fpctarget/gtk
/等/fpc.cfg/fpc.cfg
/等/fpc.cfg
/等/fpc.cfg
我已经安装了二进制版本,但在编译一个简单的项目时,Lazarus给出了:致命错误:找不到单元控件
猛击 svn校验 http://svn.freepascal.org/svn/lazarus/trunk 拉扎勒斯 光盘 拉扎勒斯 使全部干净
Lazarus编译,但链接失败,原因是:找不到libgdk-pixbuf
apt-get安装libgtk2.0-dev
我有SuSE,我得到了/usr/bin/ld:cannot find-lgtk Error:Error while linking
我有Kubuntu,我得到了/usr/bin/ld:cannot find-lgtk-x11-2.0
安装组件后,Lazarus崩溃,出现运行时错误211
在初始化cthreads之前已经使用了线程。 将cthreads作为uses子句中的第一个单元之一。 运行时错误211,$006E188
当我用线程运行程序时,我得到运行时错误232
此二进制文件没有编译的线程支持。 使用程序中的线程驱动程序重新编译应用程序 子句之前使用线程的其他单元。 运行时错误232
我有Ubuntu Breezy/Mandriva KDE3,我在Lazarus IDE中的字体看起来太大了
样式“default-text”{ fontset=“-*-变量-中等-正态-*-100-*-*-*-iso8859-1\ -*-helvetica-midium-r-正常--*-100-*-*-**-*-*“ } 类“GtkWidget”样式“default-text”
我的gtk程序如何使用自定义rc文件?
我有Ubuntu,由于缺少库,我无法为Gtk2编译
光盘 /用户/库 sudo ln-s libgdk-x11-2.0.so.0 libgtk-x11-20.so
Lazarus在Linux和Windows上的运行方式不同。 我需要知道什么?
窗户
当我循环/重建编译器时,我得到
指定的名称无法识别为内部或外部命令、可操作程序或批处理文件。>& 此时出乎意料
品牌[3]:/ ppc1.exe:找不到命令
使循环BASEDIR=your_fpc_source_dir_here编译器
当我试图制造拉撒路时,我得到了:
make.exe:***接口:没有这样的文件或目录(ENOENT)。 Stop.make.exe:***[interfaces_all]错误2
makefile:27:***您需要GNU-utils包才能使用此makefile。 停止。
我怎样才能给我的程序一个像Lazarus那样的XP?
当我运行在Lazarus中创建的Windows程序时,它以DOS窗口开始
macOS操作系统
为什么编译项目会因“unknown section attribute:no_dead_strip”而失败?
代码>单元样式>智能链接(-CX) 和链接>链接样式>链接智能(-XX)
Xcode 3.1及更高版本
调试
许可
我可以用Lazarus进行商业应用吗?
为什么有些组件被限制在商业应用中使用?
我如何知道组件是否是LCL的一部分?
我可以为Lazarus制作商业插件吗?
使用论坛
在论坛中提问的正确方式是什么?
版本编号
旧Lazarus/FPC版本的问题
为什么Windows上的链接如此缓慢(Lazarus<0.9.24)?
旧的Lazarus不支持Windows风格的资源; 转换lrs资源
防病毒软件
另请参见
Mac安装常见问题解答 用于macOS。 找不到单位-如何查找单位 当您收到“找不到单元”消息时要做什么的信息。