如何解决libtool:错误:'tclsqlite.lo' 不是有效的 libtool 对象
我目前正在尝试在 raspberry-pi4 buster debian 上安装 sqlcipher,同时遵循本指南 https://charlesleifer.com/blog/encrypted-sqlite-databases-with-python-and-sqlcipher/。
但是我没有运气,每当我使用 make 函数时,我都会收到此错误;
./libtool --mode=compile --tag=CC gcc -DSQLITE_DEFAULT_CACHE_SIZE=-8000 -DSQLITE_SOUNDEX -DSQLITE_USE_URI -DSQLITE_HAS_CODEC -O2 -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/home/pi/sqlcipher/src -I/home/pi/sqlcipher/ext/rtree -I/home/pi/sqlcipher/ext/icu -I/home/pi/sqlcipher/ext/fts3 -I/home/pi/sqlcipher/ext/async -I/home/pi/sqlcipher/ext/session -I/home/pi/sqlcipher/ext/userauth -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -I/usr/local/include -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_HAVE_ZLIB=1 -DUSE_TCL_STUBS=1 -c /home/pi/sqlcipher/src/tclsqlite.c
libtool: compile: gcc -DSQLITE_DEFAULT_CACHE_SIZE=-8000 -DSQLITE_SOUNDEX -DSQLITE_USE_URI -DSQLITE_HAS_CODEC -O2 -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/home/pi/sqlcipher/src -I/home/pi/sqlcipher/ext/rtree -I/home/pi/sqlcipher/ext/icu -I/home/pi/sqlcipher/ext/fts3 -I/home/pi/sqlcipher/ext/async -I/home/pi/sqlcipher/ext/session -I/home/pi/sqlcipher/ext/userauth -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -I/usr/local/include -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_HAVE_ZLIB=1 -DUSE_TCL_STUBS=1 -c /home/pi/sqlcipher/src/tclsqlite.c -o tclsqlite.o
/home/pi/sqlcipher/src/tclsqlite.c:298:3: error: unknown type name \u2018CONST\u2019; did you mean \u2018CONST86\u2019?
CONST char *buf,^~~~~
CONST86
/home/pi/sqlcipher/src/tclsqlite.c:371:3: error: \u2018TCL_CHANNEL_VERSION_2\u2019 undeclared here (not in a function); did you mean \u2018TCL_CHANNEL_VERSION_5\u2019?
TCL_CHANNEL_VERSION_2,/* version */
^~~~~~~~~~~~~~~~~~~~~
TCL_CHANNEL_VERSION_5
/home/pi/sqlcipher/src/tclsqlite.c:374:3: error: \u2018incrblobOutput\u2019 undeclared here (not in a function); did you mean \u2018incrblobInput\u2019?
incrblobOutput,/* outputProc */
^~~~~~~~~~~~~~
incrblobInput
/home/pi/sqlcipher/src/tclsqlite.c: In function \u2018DbTraceV2Handler\u2019:
/home/pi/sqlcipher/src/tclsqlite.c:657:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
Tcl_NewWideIntObj((Tcl_WideInt)pStmt));
^
/home/pi/sqlcipher/src/tclsqlite.c:672:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
Tcl_NewWideIntObj((Tcl_WideInt)pStmt));
^
/home/pi/sqlcipher/src/tclsqlite.c:686:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
Tcl_NewWideIntObj((Tcl_WideInt)pStmt));
^
/home/pi/sqlcipher/src/tclsqlite.c:698:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
Tcl_NewWideIntObj((Tcl_WideInt)db));
^
In file included from /usr/local/include/tcl.h:2216,from /home/pi/sqlcipher/src/tclsqlite.c:41:
/home/pi/sqlcipher/src/tclsqlite.c: In function \u2018DbObjCmd\u2019:
/home/pi/sqlcipher/src/tclsqlite.c:2161:14: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
subCmd = Tcl_GetStringFromObj( objv[2],0 );
^
/home/pi/sqlcipher/src/tclsqlite.c:2176:16: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
Tcl_GetStringFromObj(objv[3],0),"\" to integer",(char*)0);
^
/home/pi/sqlcipher/src/tclsqlite.c:2190:11: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
Tcl_GetStringFromObj(objv[2],"\": must be flush or size",^
/home/pi/sqlcipher/src/tclsqlite.c:2219:31: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
Tcl_DeleteCommand(interp,Tcl_GetStringFromObj(objv[0],0));
^
/home/pi/sqlcipher/src/tclsqlite.c:2238:13: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zName = Tcl_GetStringFromObj(objv[2],0);
^
/home/pi/sqlcipher/src/tclsqlite.c:2327:36: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
isComplete = sqlite3_complete( Tcl_GetStringFromObj(objv[2],0) );
^
/home/pi/sqlcipher/src/tclsqlite.c:2448:14: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zSep = Tcl_GetStringFromObj(objv[5],0);
^
/home/pi/sqlcipher/src/tclsqlite.c:2453:15: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zNull = Tcl_GetStringFromObj(objv[6],0);
^
/home/pi/sqlcipher/src/tclsqlite.c:2457:17: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zConflict = Tcl_GetStringFromObj(objv[2],0);
^
/home/pi/sqlcipher/src/tclsqlite.c:2458:14: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zTable = Tcl_GetStringFromObj(objv[3],0);
^
/home/pi/sqlcipher/src/tclsqlite.c:2459:13: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zFile = Tcl_GetStringFromObj(objv[4],0);
^
/home/pi/sqlcipher/src/tclsqlite.c:2886:13: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zName = Tcl_GetStringFromObj(objv[2],0);
^
/home/pi/sqlcipher/src/tclsqlite.c: In function \u2018DbMain\u2019:
/home/pi/sqlcipher/src/tclsqlite.c:3747:12: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zArg = Tcl_GetStringFromObj(objv[1],0);
^
/home/pi/sqlcipher/src/tclsqlite.c:3882:10: error: invalid type argument of unary \u2018*\u2019 (have \u2018int\u2019)
zArg = Tcl_GetStringFromObj(objv[1],0);
^
make: *** [Makefile:1078: tclsqlite.lo] Error 1
我尝试使用 make -n > cmds.sh && sh cmds.sh 命令,这是我得到的错误;
libtool: compile: gcc -DSQLITE_DEFAULT_CACHE_SIZE=-8000 -DSQLITE_SOUNDEX -DSQLITE_USE_URI -DSQLITE_HAS_CODEC -O2 -DSQLCIPHER_CRYPTO_OPENSSL -DSQLITE_OS_UNIX=1 -I. -I/home/pi/sqlcipher/src -I/home/pi/sqlcipher/ext/rtree -I/home/pi/sqlcipher/ext/icu -I/home/pi/sqlcipher/ext/fts3 -I/home/pi/sqlcipher/ext/async -I/home/pi/sqlcipher/ext/session -I/home/pi/sqlcipher/ext/userauth -D_HAVE_SQLITE_CONFIG_H -DBUILD_sqlite -DNDEBUG -I/usr/local/include -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_HAVE_ZLIB=1 -DUSE_TCL_STUBS=1 -c /home/pi/sqlcipher/src/tclsqlite.c -o tclsqlite.o
/home/pi/sqlcipher/src/tclsqlite.c:298:3: error: unknown type name \u2018CONST\u2019; did you mean \u2018CONST86\u2019?
CONST char *buf,0);
^
libtool: error: 'tclsqlite.lo' is not a valid libtool object
请帮忙。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。