FreeBSD手工編譯安裝程式(轉)
雖然使用Ports Collection編譯和安裝軟體非常簡便,然而仍有兩個理由來使用手工編譯安裝方式。一方面是Ports Collection中並不能涵蓋所有的軟體,有很多軟體沒有收入Ports Collection中。有很多原因使得一些很優秀的軟體沒有被收集入Ports Collection,例如,版權因素,或者沒有志願者對它移植到FreeBSD進行維護。另一方面,即使是透過Port來定製軟體,仍需要了解了手工編譯安裝的過程和各種編譯工具的使用,才能正常進行定製工作。
通常在FreeBSD下編譯並安裝應用程式並不困難,因為FreeBSD是一種非常標準的Unix,為Unix開發的標準C程式很容易就能在它上面編譯執行。
- 編譯和軟體工具
為了編譯和安裝一個應用程式,必須要了解編譯和執行軟體的一般方法。對於大型程式和要求高效率的軟體,通常用高階語言C來開發,使用C語言編譯器將C源程式編譯成執行程式。由於使用高階語言不依賴於硬體結構,這使得軟體非常容易移植。Unix不僅提供了編譯器,而且還提供了眾多的工具來幫助進行編譯和維護,最有用的工具為make。
- GNU C與編譯連線過程
C作為一種編譯型的高階語言,這就是說執行C程式之前要將其先編譯成可執行的由機器指令構成的執行程式,因此就需要使用一個編譯器來對C原始碼進行處理,FreeBSD使用的是GNU的C編譯器。
$ cc hello.c$ ./a.outHello, world!
UNIX下預設使用a.out作為生成的檔名,可以使用-o引數指出生成的執行檔名。
事實上前面的編譯生成執行檔案的過程由兩步組成,一是生成目標檔案,通常使用.o為字尾,然後進行連線生成執行檔案。因此,可以使用ar將多個目標檔案組合成一個函式庫檔案,而可以使用nm來檢視庫檔案的內容。
$ cc -c f1.c$ cc -c f2.c$ ar c mlib.a f1.o f2.o$ nm mlib.a
FreeBSD使用的C語言編譯器gcc是一種非常流行的,多平臺、高效率的C語言編譯器,它提供了多種選項用於生成應用軟體。以下為常用的一些選項:
相關文章
- 【轉】MySQL原始碼編譯安裝MySql原始碼編譯
- Freebsd P怎麼安裝?Freebsd PF 安裝使用詳解
- 編譯安裝zabbix編譯
- 安裝編譯ffmpeg編譯
- Griffin編譯安裝編譯
- 編譯安裝nmon編譯
- swoole 編譯安裝編譯
- apache編譯安裝Apache編譯
- FreeBSD系統上如何安裝Bugzilla?FreeBSD系統安裝Bugzilla的方法教程
- ffmpeg安裝之linux編譯安裝Linux編譯
- httpd編譯安裝phphttpd編譯PHP
- Shell編譯安裝nginx編譯Nginx
- Linux 編譯安裝 PythonLinux編譯Python
- Linux編譯安裝NginxLinux編譯Nginx
- centos PHP 編譯安裝CentOSPHP編譯
- PHP Linux安裝擴充套件(編譯安裝)PHPLinux套件編譯
- 【MySQL安裝】Linux下安裝MySQL(預編譯)MySqlLinux編譯
- 反編譯之安裝Apktool編譯APK
- Xopsed的編譯與安裝編譯
- Linux 編譯 安裝 PHP 7.3.1Linux編譯PHP
- windows下編譯安裝thriftWindows編譯
- ubuntu編譯安裝pcl教程。Ubuntu編譯
- ubuntu編譯安裝kernel教程。Ubuntu編譯
- PHP7 編譯安裝PHP編譯
- CentOS 下編譯安裝 NginxCentOS編譯Nginx
- CentOS 下編譯安裝 apacheCentOS編譯Apache
- CentOS 6.4 編譯安裝 apacheCentOS編譯Apache
- 原始碼編譯安裝Redis原始碼編譯Redis
- macOS nginx 編譯安裝教程MacNginx編譯
- Linux中編譯或安裝程式時提示No such file or directoryLinux編譯
- 如何在CentOS7安裝Node?(編譯安裝)CentOS編譯
- 在FreeBSD中安裝MySQL資料庫MySql資料庫
- linux源瑪包編譯安裝Linux編譯
- Centos8編譯安裝核心CentOS編譯
- protobuf 編譯工具安裝與使用編譯
- Mac 編譯安裝 PHPRedis 模組Mac編譯PHPRedis
- 原始碼編譯安裝的原理原始碼編譯
- Centos7編譯安裝OpenRestyCentOS編譯REST
- muduo網路庫編譯安裝編譯