Usando la biblioteca compartida en Gyp en node-sqlite3

Soy nuevo en Gyp. En lugar de compilar mi dependencia, me gustaría usar una biblioteca compartida, en particular, la libsqlite3.so que ya está en mi máquina. El principal binding.gyp actualmente se parece a

{
  'targets': [
    {
      'target_name': 'node_sqlite3',
      'sources': [
        'src/database.cc',
        'src/node_sqlite3.cc',
        'src/statement.cc'
      ],
      'dependencies': [
        'deps/sqlite3/binding.gyp:sqlite3'
      ]
    }
  ]
}

¿Cómo puedo cambiar esto para que se use una biblioteca sqlite3 compartida? El binding.gyp en la carpeta deps tiene una sección que se ve a continuación. No creo que gyp necesite hacer ninguna compilación de sqlite3 por mí, por lo que cambiar de tipo a shared_library probablemente no sea la respuesta correcta.

'targets': [
    {
      'target_name': 'sqlite3',
      'type': 'static_library',
      'include_dirs': [ '.' ],
      'direct_dependent_settings': {
        'include_dirs': [ '.' ],
        'defines': [
          'SQLITE_THREADSAFE=1',
          'SQLITE_ENABLE_FTS3',
          'SQLITE_ENABLE_RTREE'
        ],
      },
      'defines': [
        '_REENTRANT=1',
        'SQLITE_THREADSAFE=1',
        'SQLITE_ENABLE_FTS3',
        'SQLITE_ENABLE_RTREE'
      ],
      'sources': [ './sqlite3.c', ],
    },

    {
      'target_name': 'shell',
      'type': 'executable',
      'dependencies': [ 'sqlite3' ],
      'sources': [ './shell.c' ]
    }
  ]
}

Actualizar. Pude hacer que las cosas se compilaran cambiando vinculando a este

{
  'targets': [
    {
      'target_name': 'node_sqlite3',
      'sources': [
        'src/database.cc',
        'src/node_sqlite3.cc',
        'src/statement.cc'
      ],
      'ldflags': [
        '-lsqlite3'
      ]
    }
  ]
}

Sin embargo, cuando voy a ejecutar un programa usando el módulo, obtengo

nodo: error de búsqueda de símbolo: /usr/local/lib/node_modules/sqlite3/build/Release/node_sqlite3.node: símbolo no definido: sqlite3_open_v2

como si la biblioteca compartida no se está cargando o no es accesible. Creo que estoy cerca. libsqlite3 se instaló en / usr / local / lib

/usr/local/lib$ ls
libsqlite3.a   libsqlite3.so    libsqlite3.so.0.8.6  node_modules  python2.7
libsqlite3.la  libsqlite3.so.0  node                 pkgconfig

Actualización2. La trama se complica. Probé ldd en el ejecutable creado por node-sqlite3

    linux-vdso.so.1 =>  (0x00007fffd7168000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc9451df000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc944fc2000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc944c04000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc94490a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc945704000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc9446f4000)

Claramente falta libsqlite3. Así que tal vez mi declaración de ldflags realmente no funcionó según lo planeado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta