Bir statik kitaplığa karşı bağlantı veren bir paylaşılan kitaplık (gerçekten bir Python modülü) oluşturmaya çalışıyorum. Her iki kütüphane de aynı projenin parçasıdır ve cmake kullanılarak oluşturulmuştur.CMake: Statik kitaplığı kullanan paylaşılan kitaplık
Şimdi, paylaşılan kütüphane bu gibi inşa edilmiştir:
add_library(MyLibPython SHARED ${PYTHON_WRAPPERS_SRC})
set_target_properties(MyLibPython PROPERTIES PREFIX "")
target_link_libraries(MyLibPython MyLibStatic ${LIBS})
Bu sorunsuzca çalışır, ama ben Python modülü almaya çalıştığınızda, alıyorum:
ImportError: lib/python/MyLibPython.so: undefined symbol: _Zone_of_my_MyLibStatic_functions
ben de bir var Benzer şekilde inşa edilen yürütülebilir dosya sayısı (birim testleri) ve mükemmel çalışırlar.
Eklemem gerekir, bu Linux'ta gcc kullanıyor.
sen Artıracak :: Python statik bağlamaya çalışıyorsunuz:
Neyse, GNU ld (
man ld
bakmak) ile bütün bir arşivi bağlanır? Yoksa sarılı kütüphaneye statik olarak bağlanıyor musunuz? Eski ise: cevabımı buraya bakın: http://stackoverflow.com/questions/4120169/msvc-boostpython-static-linking-to-dll-pyd –İkincisi. Ama bağlantı için teşekkür ederim, python artırmak için statik bağlantı her zaman işe yaramadığını okumak ilginçti ... – Krumelur