Cppcheck の新しいのをビルドしようと思ったら、26.04 LTS では PCRE がインストールできないためビルド不可でした。本家が EOL では仕方ないですが、PCRE 無しビルドでは育てている cfg ファイルを読んでくれないみたいなので適当にビルドしてみました。
- https://sourceforge.net/projects/pcre/files/pcre/ からソースを取ってきてビルド (インストールはしない)
cd ~/pcre-8.45/ ./configure CFLAGS=-O2 make
- cppcheck の MakeFile 書き換え (143行あたり)
pcre-config 関連を削除、libpcre.a のパスを直書き。
- ifeq ($(PCRE_CONFIG),) - $(error Did not find pcre-config) - endif - override CXXFLAGS += $(shell $(PCRE_CONFIG) --cflags) override CPPFLAGS += -DHAVE_RULES ifdef LIBS - LIBS += $(shell $(PCRE_CONFIG) --libs) + LIBS += ~/pcre-8.45/.libs/libpcre.a else - LIBS=$(shell $(PCRE_CONFIG) --libs) + LIBS= ~/pcre-8.45/.libs/libpcre.a - ~/cppcheck-2.22.0/lib/regex.cpp 28行を書き換え
ヘッダーが 1つだけなので助かりました。
#ifdef _WIN32 #define PCRE_STATIC #endif -#include <pcre.h> +#include "pcre.h"
- ~/cppcheck-2.22.0/build に、~/pcre-8.45/pcre.h をコピー
- make
make MATCHCOMPILER=yes FILESDIR=~/cppcheck-2.22.0/ HAVE_RULES=yes CXXOPTS="-O2" CPPOPTS="-DNDEBUG"