2017-01-29 8 views
0

Linux上でsqlite3をソースからインストールし、これをMakefileでCコードのサブディレクトリに配置しました。私はmakeを実行しようとしたときにこれはMakefileメイクファイルエラー:/ usr/bin/ld:-lsqlite3を見つけることができません

CC  = gcc 
CFLAGS = -Wall -g -std=c99 

SOURCES := src/file1.c src/file2.c src/file3.c 
LIB  := -lm -lsqlite3 
INC  := -I include -I path/to/pathname/sqlite3/include 

all: 
    @mkdir -p bin/ 

    $(CC) $(CFLAGS) $(SOURCES) main.c -L path/to/pathname/sqlite3/ -o bin/software $(LIB) $(INC) 

clean: 
    rm -f bin/sofware 

どのように見えるしかし、私はこのエラーを取得します

gcc -Wall -g -std=c99 src/file1.c src/file2.c src/file3.c -I include -I path/to/pathname/sqlite3/include 
/usr/bin/ld: cannot find -lsqlite3 
collect2: error: ld returned 1 exit status 
make: *** [all] Error 1 

私は理解していません。 sqlite3はここpath/to/pathname/sqlite3/

であるpath/to/pathname/sqlite3/内のファイル/実行ファイルのリストです:

aclocal.m4  config.log  configure.ac install-sh  ltmain.sh missing shell.o  sqlite3.h sqlite3.pc.in 
autom4te.cache config.status depcomp  lib   Makefile  README sqlite3  sqlite3.lo tea 
bin    config.sub  include  libsqlite3.la Makefile.am share sqlite3.c  sqlite3.o 
config.guess configure  INSTALL  libtool  Makefile.in shell.c sqlite3ext.h sqlite3.pc 

1が正しく、このCコードはsqlite3のへのアクセスを適切にコンパイルすることができない方法は?

+1

'LDFLAGS = -Lpath//パス名に/ sqlite3の/ lib'(ライブラリバイナリが実際に存在する場所lib'は'仮定)を追加する必要があります。 – kaylum

+1

また、あなたが提供した情報については、まったく正しいものではありません。 makefileは 'main.c'がビルドコマンドラインに含まれるべきだと言います。しかし、あなたの出力には表示されません。 'gcc'行に' -lsqlite3'も表示されません。何かが間違っているのか、間違った出力に貼り付けたのかは分かりません。 – kaylum

答えて

1

あなたは-L /パス/に/ディレクトリ/ libに

関連する問題