Lazarus的环境配置让人有点犯晕,对于刚从delphi转到lazarus上的我来说,每次新建工程都会遇到一堆Can't find unit xxxx used by xxxx的问题,问题虽然不大,但确实让人郁闷,明明路径都设置了,怎么就找不到单元呢?
首先介绍一下Lazarus的搜索编译单元方面和delphi的区别

1.Lazarus只是Free Pascal(FPC)的外壳,实际上所有编译的工作都是由FPC完成的,本文讲述的配置方法其实是针对FPC的。
2.Lazarus虽然提供了大量的单元,但绝大部分都没加入搜索路径,需要自己手工加入到搜索路径里,这点和delphi不一样。Lazarus默认的搜索文件路径是在一个配置文件里
<lazarus_home>\fpc\2.2.2\bin\<$FPCTARGET>\fpc.cfg
在fpc.cfg文件里声明了Lazarus默认的搜索路径,可以看到,默认搜索路径很少,这就是为什么总是出现找不到单元的原因了。
3..inc文件的检索方式也和delphi中不一样,并不是把.inc文件放到单元文件的搜索路径里,lazarus就能找到.inc文件了。
4.Lazarus IDE可以找到的单元,编译器未必能找到,这点和delphi区别很大,delphi中ide和编译器使用的搜索路径是相同的。

ok,明白了这点,就可以开始配置的详细介绍了
打开工程编译选项->路径
分别介绍如下:

补充单元文件(-Fu)
这个是针对单元文件的搜索路径,如果你写了一些单元,或者用到了LCL的单元,一定要把路径加入到这里,否则Lazarus会提示找不到xxx单元,详情参考《Lazarus上Can't find unit 问题的解决办法
包含文件(-Fi)
这个是指名.inc文件的路径,如果Lazarus提示xxx.inc没找到,一定要把.inc文件路径加入到这里。
其余源代码文件(.pp/.pas文件)
貌似没什么用,一般也不需要设置,而且如果你把FPC和Lazarus源码路径加到这里,编译时会在搜索路径下也会产生一个.ppu文件,这样会莫名其妙的出现找不到单元文件的错误。所以最好的办法就是对它不做任何设置。
Libraries(-Fl)
这个路径是用来放一些当前工程中用到的动态库文件路径的,一般的习惯是把动态库放到执行文件输出目录下,所以一般情况下不用管它。
单元输出目录(-FU)
编译单元(.ppu)输出路径
添加调试器路径(无)
一般情况下不需要设置。

再举个例子来说明刚才的配置,假设有一个工程,工程目录结构如下:

~/source/lazarus/projects/demo1/ {工程目录}
~/source/lazarus/projects/demo1/src/ {源码目录}
~/source/lazarus/projects/demo1/bin/ {执行文件输出目录}
~/source/lazarus/projects/demo1/ppu/ {编译单元输出目录}
~/source/lazarus/projects/demo1/lib/demo-lib.so {用到的动态库}

那么配置如下

补充单元文件(-Fu):~/source/lazarus/projects/demo1/src/;${LazarusDir}/lcl/
包含文件(-Fi):${LazarusDir}/lcl/include/
其余源代码文件(.pp/.pas):
Libraries(-Fl):~/source/lazarus/projects/demo1/lib;
单元输出目录(-FU):ppu
添加调试器路径(无):

配置好之后,你可以把配置信息保存成一个文件,之后通过编译工程选项->路径里面的"装载/保存"按钮来加载,这样其余项目也可以用到这些配置路径了,这点对于多个工程的开发会比较方便。

原文:http://jim19770812.blogspot.com/2009/02/lazarus_09.html

非常感谢 jim19770812.im@gmail.com ,否则 inc 文件在lazarus 里面怎么搜索一直就没有搞清楚啊。

Lazarus开发环境编译选项配置的更多相关文章

  1. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

  2. 20145213《信息安全系统设计基础》实验一 Linux开发环境的配置

    北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号:20145213 20145222 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...

  3. Windows平台下PHP开发环境的配置

    Windows平台下PHP开发环境的配置 一.基本环境 1.Windows XP 32位 2.Apache 2.2.25,下载地址:http://mirror.bit.edu.cn/apache/ht ...

  4. 信息安全系统设计基础实验一:Linux开发环境的配置和使用

    北京电子科技学院(BESTI) 实验报告 课程:信息安全系统设计基础    班级:1353 姓名:芦畅 傅冬菁 学号:20135308 20135311 成绩:       指导教师:娄家鹏      ...

  5. Web开发中运行环境的配置:(Tomcat7.0.59)和开发环境的配置

    第一部分:运行环境的配置 1.下载压缩包,解压即可 2.配置系统变量JAVA_HOME为jdk的安装路径 3.如有需要修改端口号,比如8080已被占用的时候,可以将其改为9080等 apache-to ...

  6. 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)

    CodeBlocks是一个开放源代码的全功能的跨平台C/C++集成开发环境.CodeBlocks由纯粹的C++语言开发完毕,它使用了蓍名的图形界面库wxWidgets.对于追求完美的C++程序猿,再也 ...

  7. Windows7 x64 跨平台开发环境安装配置

    ======================================================================= Windows7 x64 跨平台开发环境安装配置 201 ...

  8. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置   1.Tomcat的下载 地址:https://tomcat.apach ...

  9. 一个电脑的重装到java开发环境安装配置的全过程

    刚拿到一台别人用过的电脑.看着c盘爆满,而且用了还是windows7操作系统,强迫症发作马上就准备重装系统. 之前换固态使用wepe制作U盘启动盘装系统的步骤和过程全部忘记的,贼尴尬. 同事都看不过眼 ...

随机推荐

  1. 【codeforces 785E】Anton and Permutation

    [题目链接]:http://codeforces.com/problemset/problem/785/E [题意] 给你一个初始序列1..n顺序 然后每次让你交换任意两个位置上面的数字; 让你实时输 ...

  2. MINSUB - Largest Submatrix

    MINSUB - Largest Submatrix no tags  You are given an matrix M (consisting of nonnegative integers) a ...

  3. RestEasy 用户指南----第4章.使用@Path @GET @POST 等

    转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...

  4. 数字统计(2010年NOIP全国联赛普及组)

    题目描述 请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数. 比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出 现 1 次 ...

  5. linux下的C语言开发(gdb调试)

    原文: http://blog.csdn.net/feixiaoxing/article/details/7199643 用gdb调试多进程的程序会遇到困难,gdb只能跟踪一个进程(默认是跟踪父进程) ...

  6. mysql无密码重启

    mysql无密码重启 /etc/init.d/mysql stopnohup /usr/bin/mysqld_safe --user=mysql --skip-grant-tables &

  7. MySql解压版使用

    1.解压 2.配置环境变量 3.新建空目录data,修改ini配置文件,修改basedir和datadir 4.管理员运行cmd,进入bin目录 5.mysql -install,如果提示错误,先my ...

  8. vue组件的一个总结

    用vue进行开发到目前为止也有将近一年的时间了,在项目技术选型的时候隔壁组选 react的时候我们坚持使用vue作为前端的开发框架.虽然两者思想上的差异不大,但是vue的语法在代码的可读性以及后期的维 ...

  9. 【数据结构】链式向前星知识点&代码

    代码: struct NODE{ int to; int nxt; int c; }node[MM];//链式向前星 ; void add(int a,int b,int c){ node[lcnt] ...

  10. 深入浅出时序数据库之预处理篇——批处理和流处理,用户可定制,但目前流行influxdb没有做

    时序数据是一个写多读少的场景,对时序数据库以及数据存储方面做了论述,数据查询和聚合运算同样是时序数据库必不可少的功能之一.如何支持在秒级对上亿数据的查询分组聚合运算成为了时序数据库产品必须要面对的挑战 ...