作者:朱金灿
来源:clever101的专栏
在Ubuntu 18上编译sqlite3库后在运行程序时出现undefined reference to `sqlite3_column_table_name’的错误。网上的说法是说缺少SQLITE_ENABLE_COLUMN_METADATA的宏定义,解决办法是在sqlite3.c增加一行代码:
#define SQLITE_ENABLE_COLUMN_METADATA 1
这个解决办法其实不好,更好的办法是在运行configure命令时增加SQLITE_ENABLE_COLUMN_METADATA的宏定义,具体命令如下
# CFLAGS参数是指定编译c文件的参数,其中-DSQLITE_ENABLE_COLUMN_METADATA为宏定义
# --prefix=/home/lx/ThirdPartyLib/sqlite202310241106为指定编译输出位置
./configure CFLAGS='-g -O2 -DSQLITE_ENABLE_COLUMN_METADATA' --prefix=/home/lx/ThirdPartyLib/sqlite202310241106
本文讲述了在Ubuntu18环境下编译人工智能项目时遇到的sqlite3库undefinedreference问题,提出通过在configure命令中添加SQLITE_ENABLE_COLUMN_METADATA宏定义来正确解决,而非仅仅在源码中临时添加一行代码。

854

被折叠的 条评论
为什么被折叠?



