ben bu temel soruya aşağı haşlanmış böylece düz bir cevap için biraz fazla karışıktı başka bir soru ...cython - cmake vs distutils: libpython karşı bağlantı? Ben standart Cython distutils kullanarak benim <code>aModule.so</code> oluştururken
sormuştu, olması görünmüyor
$ otool -L aModule.so
aModule.so:
/usr/local/lib/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/opt/thrift/lib/libthrift-0.9.0.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
Ama cmake kurulum ile oluştururken, bu .bu içine libpython
bağlayan bir bağlayıcı komutu üreten tutar: libpython
karşı bağlanmış
$ otool -L aModule.so
aModule.so:
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1)
/usr/local/opt/thrift/lib/libthrift-0.9.0.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/lib/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
Dağıtımcılar tarafından üretilen modül benim python2.7 kurulumumdan herhangi biriyle (sistemim veya projem için bir virtualenv) iyi çalışıyor gibi görünüyor. Oysa cmake, bir sürümle bağlantılı bir sistem pythonunu denediğimde ve ithal ettiğimde, sürüm uyuşmazlığı ile çöküyor.
Neden distors modülü bağlı olmadan düzgün çalışıyor? Ve eğer durum buysa, neden libpython'u bağlayan cmake yapısına sahip olmalıyım, ve eğer böyle bir durumda, python2.7 tercümanımın herhangi biriyle çarpışma olmadan çalışacak şekilde nasıl önleyebilirim?
Şu anda doğru piton de cmake yönlendirebilir: CXX=g++ cmake -DPYTHON_LIBRARY=/path/to/another/Python
Açıkçası, bir Python ikili çalışmasına doğrudan bağlı olmayan biri, çünkü dinamik bağlayıcı, geçerli çalışan Python'la (muhtemelen iyi bir şey) semboller arasında kancalar. Cmake'nin neden Python binary'sinde çekiyor olduğunu söyleyemem; Kendimi asla cmake kullanmamıştım. – torek
Tam olarak ne düşündüğümü ve hangi davranışı istediğimi. Cmake şey python bulur ve onu ekler modülünden bir yerde oluyor. Sadece python ile bağlantı kuramayacak bir çözüm bulmak istiyorum: - / – jdi