2013-03-22 50 views
0

我有一個SQLite的一個奇怪的鏈接錯誤。我有以下代碼:sqlite的連接錯誤

void TestSQLiteTemp() 
{ 
    /* sqlite3_initialize(); */ 
    sqlite3_close(db); 
} 

我可以編譯和鏈接,一切都很好:

[email protected]> ldd bin/tests 
    libCAENVME.so => /usr/lib/libCAENVME.so (0x00002afaffc42000) 
    ... 
    libsqlite3.so.0 => /home/perdue/software/minervadaq/minervadaq/sqlite/lib/libsqlite3.so.0 (0x00002afafff8f000) 
    ... 

但是,如果我去掉了sqlite3_initialize線,LD失敗:

g++ -o tests TestSuite.o -L/home/perdue/software/minervadaq/minervadaq/lib -lhardware -lminerva_workers -L/usr/lib64 -ldl -L/work/software/CAENVMElib/lib/x86_64 -lCAENVME -L/usr/local/lib -llog4cpp -L/usr/lib64 -lpthread -L/usr/lib64 -L/home/perdue/software/minervadaq/minervadaq/sqlite/lib/ -lsqlite3 
TestSuite.o: In function TestSQLiteTemp(): 
/home/perdue/software/minervadaq/minervadaq/tests/TestSuite.cpp:199: undefined reference to `sqlite3_initialize' 

不任何人都知道爲什麼某些功能可能是正確的,但其他人無法聯繫呢?

回答

1

要回答我的問題,問題是,有在/ usr/lib64下源碼的版本,並且我有這樣的出現在我的鏈接器列表自定義之前安裝面積。如果我移動定製的lib區的庫路徑列表的前面,一切正常。