編譯 TFS 時出現 tbsys.h: No such file or directory、tbnet.h、mysql.h 等頭文件缺失,以及 tbnet::DataBuffer、tbutil::Mutex 類型未聲明,根本原因是依賴庫未正確安裝或頭文件路徑未配置到編譯器搜索路徑。
/usr/local/include/tbsys、/usr/local/include/tbnet 存在對應頭文件,庫文件在 /usr/local/lib。mysql-devel (CentOS) 或 libmysqlclient-dev (Ubuntu),提供 mysql.h 及 libmysqlclient.so。readline-devel、openssl-devel、zlib-devel、gcc-c++、make、autoconf、automake、libtool。./configure --prefix=/usr/local/tfs \
--with-tbsys=/usr/local \
--with-tbnet=/usr/local \
--with-mysql=/usr/local/mysql \
--without-tcmalloc
若依賴安裝在非標準路徑,需額外設置環境變量:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LDFLAGS="-L/usr/local/lib"
export CPPFLAGS="-I/usr/local/include/tbsys -I/usr/local/include/tbnet -I/usr/local/mysql/include"
-m32 或 -m64)。-fpermissive 降低錯誤嚴格級別。-static-libgcc 可能導致運行時依賴缺失,生產環境建議動態鏈接。建議優先使用 Docker 構建標準化編譯環境,避免宿主機依賴地獄。參考 Dockerfile 將依賴安裝、編譯、打包流程固化。