當前位置:首頁 » 編程軟體 » 編譯perl

編譯perl

發布時間: 2023-09-05 08:51:51

1. 如何安裝和使用perl編譯

1、查看是否安裝cpan軟體包:
#rpm -qa |grep perl-CPAN
2、如果沒有安裝,則進行安裝:
#yum install perl-CPAN*

3、安裝完成後,則可以通過cpan來安裝相應模塊。比如我要安裝IPC::System::Simple模塊:
#cpan IPC::System::Simple
......
.....
.....

4、安裝完成後,查看文檔:
#perldoc IPC::System::Simple
將會列出相應的用法和說明。

linux上安裝Perl模塊的兩種方法
Linux/Unix下安裝Perl模塊有兩種方法:手工安裝和自動安裝。第一種方法是從CPAN上下載
您需要的模塊,手工編譯、安裝。第二種方法是聯上internet,使用一個叫做CPAN的模塊自動完
成下載、編譯、安裝的全過程。

a、手工安裝的步驟:

從CPAN下載了DBI模塊1.13版的壓縮文件DBI-1.13.tar.gz,假設放在/usr/local/src/下。
cd/usr/local/src
解壓縮這個文件:
tarxvzfDBI-1.13.tar.gz
這時會新建一個DBI-1.13的目錄。
cdDBI-1.13

生成makefile:
perlMakefile.PL
建立模塊
make
測試模塊
maketest
如果測試結果報告「alltestok」,您就可以放心地安裝編譯好的模塊了。安裝模塊前,先要
確保您對perl5安裝目錄有可寫許可權(通常以su命令獲得),執行:
makeinstall

現在,寫個程序試試吧。

#!/usr/bin/perl-w
usestrict;
useDBI;
..


上述步驟適合於Linux/Unix下絕大多數的Perl模塊。可能還有少數模塊的安裝方法略有差別,
所以最好先看看安裝目錄里的README或INSTALL。另外,上述過程是針對動態鏈接的Perl編譯器(所有Linux下預安裝的Perl都是動態鏈接的),如果您在使用一個靜態鏈接的Perl,您需要將新的模塊靜態鏈接到perl編譯器中,可能還需要重啟機器。


b、使用CPAN模塊自動安裝:

安裝前需要先聯上線,並且您需要取得root許可權。
perl-MCPAN-eshell
初次運行CPAN時需要做一些設置,如果您的機器是直接與internet相聯(撥號上網、專線,etc.),
那麼一路回車就行了,只需要在最後選一個離您最近的CPAN鏡像站點。例如我選的是位於國內的
中國自由軟體庫ftp://freesoft.cgi.gov.cn/pub/languages/perl/CPAN。否則,如果您的機器位於防火牆之後,還需要設置ftp代理或http代理。

獲得幫助
cpan>h

列出CPAN上所有模塊的列表
cpan>m
根據關鍵字在CPAN上查找某個模塊:
cpan[1]> i /scws/
CPAN: Storable loaded ok (v2.20)
Going to read '/home/orisun/.cpan/Metadata'
Database was generated on Sat, 17 Nov 2012 08:07:03 GMT
Distribution XUERON/Text-Scws-0.01.tar.gz
Mole Text::Scws (XUERON/Text-Scws-0.01.tar.gz)
2 items found

安裝模塊
cpan>installDBI
自動完成DBI模塊從下載到安裝的全過程。

退出
cpan>q

2. 如何 在AIX中編譯Perl

開源的gcc自然可以算是最佳選擇。在64位平台的AIX中,如果選擇運用 gcc來編譯perl源代碼,默認情況下是編譯成32位的版本。這樣在編譯DBD::Oracle的時候也須要選擇正確的32位庫,否則不能編譯成功。也可以選擇將Perl編譯成64位的,這樣在64位平台上應該更方便些,很多依賴庫的路徑運用默認即可。編譯成32位Perl$./Configure -des -Dprefix=/opt/perl -Dcc=gcc $make && make install 編譯成64位Perl$./Configure -des -Dprefix=/opt/perl -Dcc='gcc -maix64' $make && make install 註:gcc在linux下64位編譯選項為-m64,在HP-UX下64位編譯選項為-mlp64。不同平台下須要編譯64位程序,選用不同的選項即可。為了確認編譯後的版本,可以運用 -V選項運行perl:$./perl -V Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Platform. sname=aix, svers=5.3.0.0, archname=aix-64all uname='aix dbtest 3 5 00cad8cf4c00 ' config_args='-des -Dprefix=/opt/perl -Dcc=gcc -maix64' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc -maix64 -maix64', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe -maix64 -DUSE_64_BIT_ALL', ptimize='-O', cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe' ccversion='', gccversion='4.2.0', gccosandvers=''

3. 如何交叉編譯perl

  • 先下載Perl源碼:https://www.perl.org/get.html , 下載版本是5.10.1

  • 下載Perl交叉編譯源碼補丁: https://sourceforge.net/projects/perlcross.berlios/files/, 下載版本是:perl-5.10.0-cross-0.3.tar.gz

  • 分別解壓連個文件到同一個目錄下;


  • 1

  • 在ubuntu中安裝 perlbrew:

  • sudo apt-get install perlbrew
    perlbrew init
    source ~/perl5/perlbrew/etc/bashrc
    perlbrew install perl-5.10.1
  • 2

  • 3

  • 4

  • 5

  • 等待perlbrew安裝完畢;


  • 2

  • 3

  • 1

  • 合並 兩個解壓出來的perl目錄,進入perl-5.10.1的Cross目錄中:

  • cp -rfv perl-5.10.0/* perl-5.10.1/
    cd perl-5.10.1/Cross


  • 2

  • 1

  • 文件內容如下注意加了星號的內容:

  • ### Target Arch
    ** ARCH = arm **
    #ARCH = i386-pc
    #ARCH = sh4
    #ARCH = mips
    #ARCH = mipsel
    #ARCH = ppc

    ## Specific arm
    **#CONFIG_TARGET_ARM_SA11X0 = 1**
    #CONFIG_TARGET_ARM_XSCALE = 1

    ### Target OS
    **OS = linux**
    #OS = solaris2.8
  • 1

  • 修改perl的config文件

  • gedit Cross/config ##或者 vi gedit Cross/config
  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 上面加粗字體表示注意的或者修改的;

  • 修改當前目錄(Cross目錄)中的Makefile文件:
    先改變一下目錄內容的許可權:
    chmod 777 /Cross/*

  • 修改的Makefile文件內容:

  • export TOPDIR=${shell pwd}

  • include $(TOPDIR)/config

  • export CFLAGS

  • ** export SYS=arm-linux **

  • ** export CROSS=/stuff/bitbake/bin/tmp/sysroots/i686- linux/usr/armv7a/bin/arm-angstrom-linux-gnueabi- **

  • ** export LD_LIBRARY=/stuff/bitbake/bin/tmp/sysroots/i686-linux/usr/lib:$(LD_LIBRARY_PATH) **

  • export FULL_OPTIMIZATION = -fexpensive-optimizations -fomit-frame-pointer -O2

  • export OPTIMIZATION = -O2


  • export CC = arm-angstrom-linux-gnueabi-gcc

  • export CXX = arm-angstrom-linux-gnueabi-g++

  • export LD = arm-angstrom-linux-gnueabi-ld

  • export STRIP = arm-angstrom-linux-gnueabi-strip

  • export AR = arm-angstrom-linux-gnueabi-ar

  • export RANLIB = arm-angstrom-linux-gnueabi-ranlib

  • 12345678910111213141516

  • make CC=arm-angstrom-linux-gnueabi-gcc ARCH=arm patch

  • make CC=arm-angstrom-linux-gnueabi-gcc ARCH=arm perl

  • 編譯會出錯,但是沒關系,會在根目錄生成perl可執行文件;

熱點內容
vmware共享文件夾centos 發布:2024-11-20 02:20:06 瀏覽:272
王者安卓9區叫什麼名字 發布:2024-11-20 02:06:32 瀏覽:989
編程倉 發布:2024-11-20 02:01:29 瀏覽:718
英國訪問簽證流程 發布:2024-11-20 01:55:13 瀏覽:540
mac開機問號文件夾原因 發布:2024-11-20 01:46:00 瀏覽:414
演算法統宗一百饅頭 發布:2024-11-20 01:44:01 瀏覽:299
育碧用的什麼伺服器 發布:2024-11-20 01:27:05 瀏覽:750
java去除字元串空格 發布:2024-11-20 01:27:04 瀏覽:697
python簡易代碼 發布:2024-11-20 01:17:41 瀏覽:904
光遇安卓八月三號是什麼季節 發布:2024-11-20 01:10:20 瀏覽:306