當前位置:首頁 » 操作系統 » pcre源碼安裝

pcre源碼安裝

發布時間: 2025-08-08 15:11:09

⑴ Apache遇到的問題 APR not found問題的解決方法

解決Apache遇到的APR not found問題的方法如下

  1. 下載並安裝APR

    • 訪問APR下載頁面下載APR源碼包。
    • 解壓源碼包,並進入解壓後的目錄。
    • 運行./configure命令進行配置。
    • 運行make命令進行編譯
    • 運行make install命令進行安裝。
  2. 下載並安裝APR-Util

    • 訪問APR-Util下載頁面下載APR-Util源碼包。
    • 解壓源碼包,並進入解壓後的目錄。
    • 運行./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr命令進行配置(注意將/usr/local/apr替換為你實際安裝APR的路徑)。
    • 運行make命令進行編譯。
    • 運行make install命令進行安裝。
  3. 下載並安裝PCRE庫

    • 訪問PCRE下載頁面下載PCRE源碼包。
    • 解壓源碼包,並進入解壓後的目錄。
    • 運行./configure --prefix=/usr/local/pcre命令進行配置。
    • 運行make命令進行編譯。
    • 運行make install命令進行安裝。
  4. 重新配置Apache

    • 在重新配置Apache時,加上--with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre參數,確保Apache能夠找到之前安裝的APR、APR-Util和PCRE庫。
  5. 編譯並安裝Apache

    • 運行make命令進行編譯。
    • 運行make install命令進行安裝。
  6. 設置Apache啟動和自啟動

    • 復制Apache啟動文件到/sbin/目錄,方便管理。
    • 在/etc/rc.d/rc.local文件中添加啟動Apache的命令,或者將httpd服務添加到ntsysv服務管理工具中。
    • 修改Apache啟動腳本的許可權,並確保其能被系統服務管理工具識別。
  7. 防火牆設置

    • 如果區域網內其他電腦無法訪問Apache伺服器,可能是因為防火牆阻止了80埠的訪問。可以停止防火牆服務,或者放開80埠。

通過以上步驟,你應該能夠解決Apache遇到的APR not found問題,並成功安裝和配置Apache伺服器。如果在安裝過程中遇到任何錯誤,請仔細檢查每一步的配置和命令是否正確執行。

⑵ pcre驗證是否安裝

可以通過以下幾種方法驗證PCRE是否安裝:

命令行查詢
  • RPM包管理系統(如CentOS/RHEL):在終端執行 rpm -qa | grep pcre ,若輸出包含 pcre 或 pcre-devel,則已安裝,如 pcre-8.32-17.el7.x86_64。
  • DEB包管理系統(如Ubuntu/Debian):使用命令 dpkg -l | grep pcre ,若有輸出則表明已安裝。
  • 通用方法(適用於源碼安裝):運行 pcre-config --version ,若返回版本號(如 8.45),則安裝成功,但需確保 pcre-config 在環境變數 PATH 中。
文件路徑檢查

源碼安裝通常默認路徑為 /usr/local/lib 或指定路徑(如 /usr/local/pcre),可通過 ls /usr/local/lib | grep libpcre 確認庫文件;也可通過 ls /usr/local/include | grep pcre.h 檢查頭文件。

編譯驗證

編寫簡單C程序(如 test_pcre.c),代碼為 #include <pcre.h> int main() { return 0; } ,使用 gcc test_pcre.c -lpcre -o test_pcre 進行編譯。若無報錯,且生成可執行文件 test_pcre,則PCRE可用。

需注意,部分Linux發行版(如CentOS 7)默認預裝PCRE基礎庫,但可能缺少開發包(pcre-devel),可通過 yum install pcre-devel 補充。同時,Apache、Nginx等軟體對PCRE版本有要求,建議通過 pcre-config --version 確認版本是否滿足需求。

c語言 正則庫 pcre 教程 (windows環境)

1、編譯PCRE正則表達式庫

(1) (MinGW + MSYS)

將PCRE源碼包直接拷貝到MSYS目錄下,(如:C:\MSYS\1.0\pcre\)

運行msys.bat啟動MSYS,

在命令行輸入

cd / // 回根目錄

cd pcre // 進入PCRE目錄

./configure // 配置編譯

make // 編譯全部

完成後,會在C:\MSYS\1.0\pcre\.libs\ 下生成所需要的文件:

libpcre-0.dll // PCRE的動態鏈接庫

libpcre.dll.a // 調用PCRE動態鏈接庫所用的LIB

libpcre.a // PCRE靜態鏈接庫

再配合上C:\MSYS\1.0\pcre\目錄下的"pcre.h",就可以在程序中加入正則表達式支持了:)

(2) (於windows平台手動編譯pcre,轉載)

將 config.h.generic 重命名為 config.h
設置其中的 HAVE_BCOPY 參數為 0 (因為windows平台無b()函數)
重命名 pcre.h.generic 為 pcre.h.
重命名 pcre_chartables.c.dist 為 pcre_chartables.c.
編譯 dftables.c 成可執行文件,要加入參數 -DHAVE_CONFIG_H,以便導入 config.h 文件中的設置
/* 重命名 pcre_chartables.c.dist 為 pcre_chartables.c */
運行編譯的可執行文件 dftables.exe ,參數為 pcre_chartables.c
即 dftables.exe pcre_chartables.c
新建工程,包含下列文件,編譯成lib文件即可
pcre_internal.h
ucp.h
ucpinternal.h
ucptable.h
pcre_chartables.c
pcre_compile.c
pcre_config.c
pcre_dfa_exec.c
pcre_exec.c
pcre_fullinfo.c
pcre_get.c
pcre_globals.c
pcre_info.c
pcre_maketables.c
pcre_newline.c
pcre_ord2utf8.c
pcre_refcount.c
pcre_study.c
pcre_tables.c
pcre_try_flipped.c
pcre_ucp_searchfuncs.c
pcre_valid_utf8.c
pcre_version.c
pcre_xclass.c

這樣就可以生成 libpcre.a 文件了 (vc,bcc生成的是pcre.lib,大同小異)

2、使用生成的 libpcre.a (靜態鏈接庫)

在你的程序中添加:

#define PCRE_STATIC // 開啟靜態鏈接庫支持(一定要添加該行,否則無法使用靜態鏈接庫)
#include "pcre.h" // PCRE頭文件
並且添加 libpcre.a 到工程中,然後就可以在程序中使用PCRE函數了:)

編譯選項 添加 /MT ,無頭文件預編譯.

3、使用生成的 libpcre-0.dll 和 libpcre.dll.a (動態鏈接庫)

在你的程序中添加:

#include "pcre.h" // PCRE頭文件

並且添加 libpcre.dll.a 到工程中,然後就可以在程序中使用PCRE函數了:)

================================================================================

命令行下的批處理解決方法 .如果已經下載,可以不用第一行.

goto START

首先確保控制台環境中有:
1、VC6命令行編譯環境
2、wget.exe、unzip.exe、sed.exe、mv.exe
然後執行這個批處理文件,就可以得到VC版本的pcr.lib。

:START
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.zip
unzip pcre-7.7.zip
cd pcre-7.7
sed -e "s/#define HAVE_BCOPY 1/#define HAVE_BCOPY 0/g" config.h.generic > config.h
mv pcre.h.generic pcre.h
mv pcre_chartables.c.dist pcre_chartables.c
cl -MD -DHAVE_CONFIG_H dftables.c
dftables.exe pcre_chartables.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_chartables.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_compile.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_config.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_dfa_exec.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_exec.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_fullinfo.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_get.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_globals.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_info.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_maketables.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_newline.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_ord2utf8.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_refcount.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_study.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_tables.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_try_flipped.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_ucp_searchfuncs.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_valid_utf8.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_version.c
cl -O1 -MD -DHAVE_CONFIG_H -c pcre_xclass.c
lib -out:libpcr.lib pcre_chartables.obj pcre_compile.obj pcre_config.obj pcre_dfa_exec.obj pcre_exec.obj pcre_fullinfo.obj pcre_get.obj pcre_globals.obj pcre_info.obj pcre_maketables.obj pcre_newline.obj pcre_ord2utf8.obj pcre_refcount.obj pcre_study.obj pcre_tables.obj pcre_try_flipped.obj pcre_ucp_searchfuncs.obj pcre_valid_utf8.obj pcre_version.obj pcre_xclass.obj

這樣就出來了: pcre.h + libpcr.lib

==============================================================================

最近使用VC編譯了一下她的源代碼,其實步驟很簡單, 如下

1 一些源文件改名
config.h.generic 改名為 config.h (注意裡面的配置)
pcre.h.generic 改名為 pcre.h
pcre_chartables.c.dist 改名為 pcre_chartables.c

2 建立VC工程
建立一個VC的DLL工程,去掉原有的包含文件
將PCRE的所有pcre_*.c都加進去, pcre後面沒有_的不要加, 後綴名是.cc的不要加
可以參考上面的.還有.h 文件也是要的.

3 修改工程設置

增加工程預編譯宏 HAVE_CONFIG_H
不使用預編譯頭 Not Using Precompiled Headers
編譯選項 添加 /MT

OK 完成以上三步,就可以在 VC 上編譯通過了。

4 編譯結果
使用時只需要編譯出來的 .DLL .Lib 和 源代碼目錄的 pcre.h

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:677
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:250
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705