VC6 0下配置boost庫使用正規表示式

2021-04-13 09:09:10 字數 1958 閱讀 4283

最近做開發碰到了長字串匹配、搜尋的問題,最先想到的是使用正規表示式,簡單、高效。

但是我用的開發工具是vc6.0,不支援正規表示式。

上網baidu一下,發現支援正則的庫還真不少,大概有以下幾種:boost,gnu,vc7帶的atl中的和微軟發布的greta。

網上的朋友對boost評價不錯,決定就使用是它了!

我解壓的目錄是d:/boost

2、然後是編譯,我只要支援正規表示式就可以,因此只需要編譯d:/boost/libs/regex/build目錄下的檔案。據說全部編譯要花將近2個小時,沒有驗證過,在我家裡的機器上編譯正規表示式部分只用了不到5分鐘。

網上介紹的如何編譯最多的一篇文章是「vc利用boost庫解析正規表示式」,如果有人能根據這篇文章編譯成功不妨告訴小弟一聲……

以下是我的操作:

在「執行」裡輸入「

cmd」,開啟命令提示符;

輸入命令「

cd d:/boost/libs/regex/build」//設定當前目錄

輸入命令「

d:」//轉到當前目錄

接下來是很關鍵的一步:

很多文章是這樣說的「輸入 nmake -fvc6.mak」

但是出現了「'nmake' 不是內部或外部命令,也不是可執行的程式或批處理檔案。」的錯誤提示。

然後你就會拼命查詢原因,結果又有文章上說是環境變數沒配置好,然後給出一堆「set」。

也有的文章說是執行一下visual studio安裝目錄下的vc98/bin/vcvars32.bat檔案就ok了。

你按照文章作者的方法做的,結果發現問題依舊!

以上說法都是正確的,但是說得都不是很完整,出現錯誤提示的根本原因就是環境變數沒配置好,不識別nmake命令,配置過jdk的朋友就很容易明白。如果按照作者的要求搞一堆「set」,未免大題小作了吧,因為我們只需要用一次'nmake' 就可以解決問題了。

vcvars32.bat正式配置環境變數的批處理檔案,但是配置的引數只在當前視窗有效,也就是說當你雙擊執行後視窗關閉,環境變數已經沒有了。

於是我用了以下方法:

把vcvars32.bat檔案用滑鼠拖到開啟的cmd視窗(

"d:/program files/microsoft visual studio/vc98/bin/vcv

ars32.bat"),然後回車。

輸入命令「

nmake -fvc6.mak」

等待幾分鐘,ok了!,d:/boost/libs/regex/build多了乙個vc6的資料夾,裡面是很多lib和dll檔案。

3、到此資源已經準備好了,下面要做的工作是配置vc6.0,使它編譯使時候能找到正則庫。

把vc6下的所有lib和dll檔案拷貝到visual studio安裝目錄下的vc98/boostrex(boostrex是我自己建的)

然後開啟vc6.0,選擇「tools->options->directories->include files」,加入一行「d:/boost」

選擇「tools->options->directories->library file」,加入一行「c:/program files/microsoft visual studio/vc98/boostrex」(彩色部分是我的visual studio安裝目錄)

配置也ok了!

4、編寫程式測試

sdk下的測試:

#include "stdafx.h"

#include

#include

#include

#include

#include

using namespace std;

using namespace boost;

regex expression("^select ([a-za-z]*) from ([a-za-z]*)");

int main(int argc, char* argv)

} else

輸出的結果跟上面一樣。

VC6 0下編譯boost庫的regex

今天要用到正規表示式,用網上的方法,直接使用命令 nmake vc6.mak 提示 nmake 不是內部或外部命令,也不是可執行的程式 上網搜尋了一下,說執行命令 call c program files microsoft visual studio vc98 bin vcvars32.bat 重...

VC6 0下配置boost庫使用正規表示式

最近做開發碰到了長字串匹配 搜尋的問題,最先想到的是使用正規表示式,簡單 高效。但是我用的開發工具是vc6.0,不支援正規表示式。上網baidu一下,發現支援正則的庫還真不少,大概有以下幾種 boost,gnu,vc7帶的atl中的和微軟發布的greta。網上的朋友對boost評價不錯,決定就使用是...

VC6 0下配置boost庫使用正規表示式

include stdafx.h include include include include include using namespace std using namespace boost regex expression select a za z from a za z int main...