On 11 November 2012 20:27, Charles Smith wrote: > I confess I'm confused. > > I thought that it worked, but now it's not working any more: > > g++ \ > -L"/home/me/dir1" \ > -L"/home/me/dir2" \ > -L"/home/me/dirn" \ > /home/me/opt/lib/libsqlite3.a \ > -o "FLAT" ./a.o ./b.o -llib1 -llib2 -llibn > /home/me/dir2/liblib2.a(layer.o): In function `Entity::get_ip_config(char*)': > /home/me/a.cc:86: undefined reference to `sqlite3_open_v2' You need to list the library after the objects that depend on it. The linker doesn't know it needs sqlite3_open_v2 until it sees a.o, by which point it's already looked at libsqlite3.a and decided it doesn't need any of its symbols.