0
我在項目中使用自定義的Metaphone Sqlite函數。這裏有一個鏈接功能:在32位和64位系統上,自定義Sqlite函數的行爲不同
https://github.com/geocommons/geocoder/blob/master/src/libsqlite3_geocoder/metaphon.c
當我運行在32位的Ubuntu的功能時,執行類似:
$ sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
sqlite> .load ./libsqlite3_geocoder.so
sqlite> select metaphone('hitchcock');
XKK
正如你可以看到,該函數返回無效結果(正確結果是HXKK
)。在64位Ubuntu上,這個錯誤不會發生。奇怪的是,如果我將這個函數作爲獨立的C程序編譯(刪除所有Sqlite的東西),它在32位操作系統上也可以正常工作。
任何想法可能是什麼原因,以及如何解決它?
注意:如果你想嘗試一下自己,只是得到Github上code,在src/libsqlite3_geocoder
目錄中運行make
和.so
應建。你需要sqlite3開發庫來編譯它。