編譯apache運行庫,apr提示缺少「apr_escape_test_char.h」解決方案。

最近在windows平臺編譯ActiveMQ的時候,一直卡在編譯apr運行庫的步驟上,反覆提示缺少「apr_escape_test_char.h」頭文件。在網上查了很多資料,要麼是官方直接給出了apr_escape_test_char.h的內容,要麼是第三方提供了apr_escape_test_char.h文件,就是沒人能解釋這個文件是從哪來的。

一陣沒頭蒼蠅亂撞,我居然在一臺電腦上莫名其妙倒騰出來了這個文件,也不知道是怎麼就生成的。我apr_escape_test_char.h文件第一行裏看到了一段註釋:

this file is automatically generated by gen_test_char, do not edit. "make include/private/apr_escape_test_char.h" to regenerate. 

這個文件是通過gen_test_char自動生成的,無需編輯。

然後在apr、apr-iconv、apr-util三個目錄裏一搜,終於發現瞭如何生成這個頭文件。

生成工具在apr/tools這個目錄裏,這個目錄只有一個文件「gen_test_char.c」。然後我在apr解決方案裏,新建了一個工程,把這個源文件添加進來,然後編譯生成,產生了gen_test_char.exe可執行文件。

 

然後命令行執行生成的可執行文件

原來在這!

命令行:tools > apr_escape_test_char.h

折騰了那麼久的文件,終於給弄出來了!

把生成的apr_escape_test_char.h複製到apr/include目錄下,再次編譯apache庫,完美!