Puedo compilar el código de esta manera:

g++ main.cpp -I sqlite3

donde sqlite3 es una carpeta con los archivos de origen que he recibido de sqlite-amalgamation-3071100.zip-me es bandera para la inclusión de las fuentes.

Este archivo contiene : shell.c, sqlite3.c, sqlite3.h, sqlite3ext.h.

Esto es lo que recibo:

undefined reference to `sqlite3_open'

El programa sólo contienen #include y la llamada a la función sqlite3_open(…);


Puedo compilar todo bien si puedo hacer «sudo apt-get install libsqlite3-dev» y compilar el programa con el comando

g++ main.cpp -lsqlite3

Pero quiero resolver ese problema, porque yo no quiero tener que instalar algunas librerías en otro equipo, yo no tengo acceso a eso!!!

Usted necesita para construir la biblioteca y, a continuación, enlace en contra de ella.
¿Por qué crees que vas a ser capaz de enlace en contra de la libsqlite3 de la biblioteca cuando no está instalado?
Kerrek SB, se ve que la biblioteca contiene 4 archivos. Cómo se construye y qué es lo que necesito cuando tengo sqlite3.c y sqlite3.h archivos. Tengo que hacer «g++ -o sqlite3 sqlite3.h sqlite3.c» ??? Acabo de probar a compilar con «g++ -o myprog myprog.cpp sqlite3.c sqlite3.h» Pero recibo un montón de errores.
¿Qué estás tratando de construir – sqlite3 línea de comandos clien o el sqlite3 biblioteca?

OriginalEl autor Moscow Boy | 2012-05-13

5 Comentarios

  1. 11
    • Paso 1: recopilar sqlite3.c a sqlite3.o por gcc
    • Paso 2: compilar el código c++ junto con sqlite3.o por g++

    Mi makefile para sqlite shell y c++ api de prueba:

      1 CXX = g++
      2 cc = gcc
      3 
      4 LIB = -lpthread -ldl
      5 BIN = sqlite apiTest
      6 
      7 all : $(BIN)
      8 sqlite : sqlite3.c shell.c
      9     $(cc) -o [email protected] $^ $(LIB) 
     10 apiTest : apiTest.cpp sqlite3.o
     11     $(CXX) -o [email protected] $^ $(LIB) 
     12 sqlite3.o : sqlite3.c
     13     $(cc) -o [email protected] -c $^
     14 
     15 clean :
     16     rm -f $(BIN)
     17 
     18 .PHONY: all, clean

    OriginalEl autor yc_yuy

  2. 4

    Descarga el sqlite fusión de http://www.sqlite.org/download.html.

    1. Incluye ninguna referencia a sqlite como extern «C», ya que sqlite está escrito en C.

    2. Crear la biblioteca sqlite con «gcc-c sqlite3.c».

    3. Link de el programa para la recién creada biblioteca con «g++ principal.c sqlite3.o»

    error: invalid la conversión de ‘void*’ a ‘de la Tabla*’ y así sucesivamente!!! 100 líneas. «g++ main.cpp sqlite3.c» no Hay sqlite3.cpp existen.
    Se necesita compilar sqlite3.c con un compilador de C (gcc).
    sqlite3 está escrito en C, no C++. Tendrás que compilarlo con gcc, no g++. Y puede que necesite utilizar extern "C" en su código de C++.
    Descargar el sqlite3 código fuente desde el enlace proporcionado. Usted verá un archivo llamado «sqlite3.c», que es necesario suministrar a g++ al compilar.
    Eso es incorrecto. El código C en sqlite3.c no es compatible con C++ (recuerde que C++ no es un estricto superconjunto de C). Se necesita compilar sqlite3.c con un compilador de C; una vez que hayas hecho esto, usted puede vincular con el código C++. sqlite3.h ya tiene un condicional extern "C", así que esa parte es tomado cuidado de.

    OriginalEl autor Asier Gutierrez

  3. 2

    Que se necesidad de compilar sqlite3 con gcc. Traté de g++ y el resultado fue que cientos de errores y advertencias.

    Quizás sqlite3 shoule ser escrita de tal manera que se compile con un compilador de C++. Los compiladores de C++ son mucho choosier y hacer cumplir tipos y mucho mejor que un compilador de C.

    OriginalEl autor Ewout Boks

  4. 0

    En Windows con MinGW32 compilar una biblioteca de vínculos dinámicos:

    gcc -shared sqlite3.c -o sqlite3.dll

    OriginalEl autor albert

  5. 0

    Los siguientes trabajó para mí en Ubuntu:

    gcc-o prueba prueba.c sqlite3.c -lpthread -idl

    1. Declaré #include «sqlite3.h» en el archivo de origen (de prueba.c) #include NO funciona.
    2. gcc-o prueba prueba.c sqlite3.c -lpthread -idl

    La referencia como se indica a continuación:

    https://www.sqlite.org/draft/howtocompile.html

    OriginalEl autor Bytes Bytes

Dejar respuesta

Please enter your comment!
Please enter your name here