👾

undefined reference to `sqlite3_column_table_name'

2024/12/13に公開

実行環境

Linux xxx.example.com 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

内容

解決するのに思ったより時間が掛かったのとあまり記事にされてなかったので、残しておく目的です。
内容は「undefined reference to `sqlite3_column_table_name'」というエラーの解決。

本文

/usr/bin/ld: /usr/lib/libgdal.so.30: undefined reference to `sqlite3_column_origin_name'
/usr/bin/ld: /usr/lib/libgdal.so.30: undefined reference to `sqlite3_column_table_name'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/08_opencv_resize_blur.dir/build.make:154: 08_opencv_resize_blur] Error 1
make[1]: *** [CMakeFiles/Makefile2:335: CMakeFiles/08_opencv_resize_blur.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

まずはsqlite3のself-compileのファイルをダウンロードする。
URL: https://www.sqlite.org/download.html

wget -O sqlite-autoconf-3470200.tar.gz https://www.sqlite.org/2024/sqlite-autoconf-3470200.tar.gz
tar -zxvf sqlite-autoconf-3470200.tar.gz
cd ./sqlite-autoconf-3470200
nano sqlite3.c

#define SQLITE_ENABLE_COLUMN_METADATAsqlite3.cに加えます。

*/
#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
# define SQLITE_PRIVATE static

#define SQLITE_ENABLE_COLUMN_METADATA

#endif
/************** Begin file sqliteInt.h ***************************************/
/*


↑こんな感じです。

./configure
make
sudo make install

参考サイト

1.http://source.online.free.fr/Linux_HowToCompileSQLite.html
2.https://github.com/SRombauts/SQLiteCpp/issues/3#issuecomment-24891084

Discussion