這工作:連接一個Python模塊:區別與'ld`鏈接之間以及與`cc`
cc leveldb_ext.cc leveldb_object.cc -o leveldb.so -I /usr/include/python2.7 -lpython2.7 -lleveldb -lsnappy -shared -lc
這不起作用:
cc -I /usr/include/python2.7 -g -c leveldb_ext.cc leveldb_object.cc
ld -shared -o leveldb.so -lpython2.7 -lleveldb -lsnappy leveldb_ext.o leveldb_object.o -lc
在這兩種情況下,我不知道得到任何編譯器/鏈接錯誤。但是,當試圖導入它時,出現此錯誤:
$ python -c "import leveldb"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: ./leveldb.so: undefined symbol: _ZNK7leveldb6Status8ToStringEv
爲什麼?這兩種方法有什麼區別嗎?有什麼不同?
謝謝。 'ld -lpython2.7 leveldb _ *。o -lleveldb -lsnappy -lc -o leveldb.so -shared'工作。 – Albert