Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 您仍然在bld目录中: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`_Sqlite_Csv - Fatal编程技术网

Sqlite 您仍然在bld目录中: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`

Sqlite 您仍然在bld目录中: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`,sqlite,csv,Sqlite,Csv,或者用“pwd”替换csv.so文件的完整路径 现在!现在,您可以运行它了。享受 csv.c:115:3: error: no member named '__builtin___vsnprintf_chk' in 'struct sqlite3_api_routines' sqlite3_vsnprintf(CSV_MXERR, p->zErr, zFormat, ap); ^~~~~~~~~~~~~~~~~ /usr/include/sqlite3ext.h:437:53: n

或者用“pwd”替换csv.so文件的完整路径

现在!现在,您可以运行它了。享受

csv.c:115:3: error: no member named '__builtin___vsnprintf_chk' in 'struct sqlite3_api_routines'
  sqlite3_vsnprintf(CSV_MXERR, p->zErr, zFormat, ap);
  ^~~~~~~~~~~~~~~~~
/usr/include/sqlite3ext.h:437:53: note: expanded from macro 'sqlite3_vsnprintf'
#define sqlite3_vsnprintf              sqlite3_api->vsnprintf
                                       ~~~~~~~~~~~  ^
/usr/include/secure/_stdio.h:75:3: note: expanded from macro 'vsnprintf'
  __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap)
  ^
csv.c:115:21: warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'const void *' [-Wint-conversion]
  sqlite3_vsnprintf(CSV_MXERR, p->zErr, zFormat, ap);
                    ^~~~~~~~~
csv.c:67:19: note: expanded from macro 'CSV_MXERR'
#define CSV_MXERR 200
                  ^~~
/usr/include/secure/_stdio.h:75:57: note: expanded from macro 'vsnprintf'
  __builtin___vsnprintf_chk (str, len, 0, __darwin_obsz(str), format, ap)
                                                        ^~~
/usr/include/secure/_common.h:39:54: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIFY_LEVEL > 1 ? 1 : 0)
                                                     ^~~~~~
csv.c:568:5: error: use of undeclared identifier 'sqlite3_str'
    sqlite3_str *pStr = sqlite3_str_new(0);
    ^
csv.c:568:18: error: use of undeclared identifier 'pStr'
    sqlite3_str *pStr = sqlite3_str_new(0);
                 ^
csv.c:568:25: warning: implicit declaration of function 'sqlite3_str_new' is invalid in C99 [-Wimplicit-function-declaration]
    sqlite3_str *pStr = sqlite3_str_new(0);
                        ^
csv.c:571:5: warning: implicit declaration of function 'sqlite3_str_appendf' is invalid in C99 [-Wimplicit-function-declaration]
    sqlite3_str_appendf(pStr, "CREATE TABLE x(");
    ^
csv.c:571:25: error: use of undeclared identifier 'pStr'
    sqlite3_str_appendf(pStr, "CREATE TABLE x(");
                        ^
csv.c:581:29: error: use of undeclared identifier 'pStr'
        sqlite3_str_appendf(pStr, "%sc%d TEXT", zSep, iCol);
                            ^
csv.c:588:31: error: use of undeclared identifier 'pStr'
          sqlite3_str_appendf(pStr,"%s\"%w\" TEXT", zSep, z);
                              ^
csv.c:597:31: error: use of undeclared identifier 'pStr'
          sqlite3_str_appendf(pStr,"%sc%d TEXT", zSep, ++iCol);
                              ^
csv.c:603:25: error: use of undeclared identifier 'pStr'
    sqlite3_str_appendf(pStr, ")");
                        ^
csv.c:604:18: warning: implicit declaration of function 'sqlite3_str_finish' is invalid in C99 [-Wimplicit-function-declaration]
    CSV_SCHEMA = sqlite3_str_finish(pStr);
                 ^
csv.c:604:37: error: use of undeclared identifier 'pStr'
    CSV_SCHEMA = sqlite3_str_finish(pStr);
                                    ^
csv.c:643:27: error: use of undeclared identifier 'SQLITE_VTAB_DIRECTONLY'
  sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY);
                          ^
4 warnings and 10 errors generated.

docker run -ti --rm -v $(pwd):/host ubuntu bash

# Steps to build SQLite and CSV Virtual Table extension from source inside an Ubuntu docker container
cd /host
apt update
apt install -y vim build-essential zip wget
wget https://sqlite.org/2020/sqlite-autoconf-3310100.tar.gz
tar xvf sqlite-autoconf-3310100.tar.gz 
cd sqlite-autoconf-3310100
./configure
make
./sqlite3
# Obtain csv.c and change <sqlite3ext.h> to "sqlite3ext.h" in the file
vi csv.c
gcc -g -fPIC -shared csv.c -o csv.so
./sqlite3
#sqlite> .load ./csv
#sqlite> CREATE VIRTUAL TABLE temp.t1 USING csv(filename='/host/users.csv',header);
#sqlite> .headers on
#sqlite> SELECT * FROM t1 LIMIT 1;
wget https://www.sqlite.org/src/tarball/sqlite.tar.gz
tar xzf sqlite.tar.gz
mkdir bld
cd bld
../sqlite/configure
make
sudo apt-get install tcl8.6-dev
gcc -I. -fPIC -shared ../sqlite/ext/misc/csv.c -o csv.so -lm
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`