g++ -O3 -Wall -pedantic -lm -lpthread -lsqlite3 -o picker_mt picker_mt.c /tmp/ccHrClrh.o: In function `init(int, char**)': picker_mt.c:(.text+0x1ed): undefined reference to `sqlite3_open' picker_mt.c:(.text+0x307): undefined reference to `sqlite3_prepare_v2' picker_mt.c:(.text+0x31f): undefined reference to `sqlite3_step' picker_mt.c:(.text+0x337): undefined reference to `sqlite3_column_int' picker_mt.c:(.text+0x3c7): undefined reference to `sqlite3_prepare_v2' picker_mt.c:(.text+0x3f3): undefined reference to `sqlite3_column_int' picker_mt.c:(.text+0x432): undefined reference to `sqlite3_step' picker_mt.c:(.text+0x67b): undefined reference to `sqlite3_errmsg' picker_mt.c:(.text+0x786): undefined reference to `sqlite3_errmsg' picker_mt.c:(.text+0x7b2): undefined reference to `sqlite3_errmsg' /tmp/ccHrClrh.o: In function `main': picker_mt.c:(.text.startup+0x146): undefined reference to `pthread_create' picker_mt.c:(.text.startup+0x356): undefined reference to `pthread_join' collect2: ld returned 1 exit status make: *** [picker_mt] Error 1