refboxのmakeエラー(2023/02/10版)
Ubuntu 20.04でのセットアップ(2022/12/09版)を試したら,refbox のmake でエラーが出たので,そのメモ.
/home/ryukoku/rcll-refbox/src/libs/rest-api/clips-rest-api/clips-rest-api.cpp: In member function ‘Fact llsfrb::ClipsRestApi::gen_fact(CLIPS::Fact::pointer&, bool)’: /home/ryukoku/rcll-refbox/src/libs/rest-api/clips-rest-api/clips-rest-api.cpp:179:27: error: ISO C++ forbids converting a string constant to ‘char*’ [-Werror=write-strings] 179 | PrintFact(env_->cobj(), (const char *)"ProcPPForm", (struct fact *)fact->cobj(), FALSE, FALSE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors
とのこと.
また,gcc の警告が変わったのかなぁ.
「-Werror=write-strings」とのことなので,無視するには「-Wno-write-strings」らしい.
ということで,/etc/buildsys/config.mk に CFLAGS_BASE += -Wno-write-strings を追加.
tail etc/buildsys/config.mk SYSLIBDIR32 = /usr/lib$(if $(wildcard /usr/lib32),32) PKGCONFIG = PKG_CONFIG_PATH=$(SYSLIBDIR32)/pkgconfig PKG_CONFIG_LIBDIR=$$PKG_CONFIG_PATH; pkg-config ARCH=i386 endif CFLAGS_BASE += -Wno-write-strings endif # __buildsys_config_mk_
次はfpermissive のエラーが出るけど,これは-fpermissiveの解決方法を参照.
/home/ryukoku/rcll-refbox/src/refbox/clips_logger.cpp:170:26: error: invalid conversion from ‘int (*)(void*, const char*’ to ‘int (*)(void*, char*)’ [-fpermissive]
log_router_query の型が異なっている(const char* と char* の違い)とのことで,log_router_query の定義を見てみると,
static int #ifdef CLIPS_OLD_63_API log_router_query(void *env, char *logical_name) #else log_router_query(void *env, const char *logical_name) #endif
あ,CLIPS_OLD_63_API ですね.
/etc/buildsys/config.mk に追加しておこうっと.
CLIPS_OLD_63_API = TRUE
よし.通った.
コメントを残す