程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Lazarus開發環境編譯選項配置

Lazarus開發環境編譯選項配置

編輯:Delphi

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

非常感謝 [email protected] ,否則 inc 文件在lazarus 裡面怎麼搜索一直就沒有搞清楚啊。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved