背景
taos是新引入的组件,同时我们的开发环境是本地开发,新生的服务和异构的本地系统,会存在各种不适应,会踩很多坑。 留下记录,已供后人避坑
Mac M1 开发环境部署
正常部署
-
版本选择 选择 2.2.2.6 版本。 高的版本会出现编译问题,例如CMakeList找不到等
-
安装unixodbc
cmake后报错:brew install unixodbc 安装后还是报错: brew install unixodbc 查看源码后发现: check_symbol_exists(SQLExecute "sql.h" HAVE_ODBC_DEV) 45 if(NOT (HAVE_ODBC_DEV)) 46 unset(HAVE_ODBC_DEV CACHE) 47 message(WARNING "unixodbc-dev is not installed yet, you may install it with homebrew by typing: brew install unixodbc") 48 else () 49 message(STATUS "unixodbc/unixodbc-dev are installed, and 搜索HAVE_ODBC_DEV后发现: check_symbol_exists(SQLExecute "sql.h" HAVE_ODBC_DEV) 安装odbc dirver https://docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos?view=sql-server-ver15 一般会卡这里,因为国内网络环境 选择目录要看准: ==> Tapping homebrew/core Cloning into '/usr/local/Library/Taps/homebrew/homebrew-core'... cd /usr/local/Homebrew/Library/Taps/ mkdir homebrew cd homebrew git clone https://mirrors.ustc.edu.cn/homebrew-core.git brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release [brew update] 可选,我试了好几次,可能之前已经update了 HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18 GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/zc/2t9mbkvd7nvcw68hdgq_ky3h0000gn/T/go-build3823960656=/tmp/go-build -gno-record-gcc-switches -fno-common -I/usr/local/include“
go build显示 "taos.h" 没找到
mac的系统inclue貌似一开始没有/usr/local/include
解决办法:
C_INCLUDE_PATH=/usr/local/include/
export C_INCLUDE_PATH
CPLUS_INCLUDE_PATH=/usr/local/include/
export CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/lib/
3、好了后发现 taos在include生成的软连接,连接的源地址是空的。
所以再手动加一下:
sudo ln -s /usr/local/Cellar/tdengine/2.2.2.6/include/taoserror.h /usr/local/include/taoserror.h
sudo ln -s /usr/local/Cellar/tdengine/2.2.2.6/include/taos.h /usr/local/include/taos.h
go build 显示 ld: warning: directory not found for option '-L/usr/local/taos/driver'
增加软连接或复制目录也没用
sudo cp -r /usr/local/Cellar/tdengine/2.2.2.6 ./taos
可能还是前面的unixodbc没有安装导致的