2012-05-27 9 views
9

C++ ve Python/Cython dosyalarını içeren bir projem var. Şimdiye kadar birincil C++ parçası geliştirdi ve qmake ile statik bir kütüphaneye derledim. Bazı birkaç yöntem, boost :: python ile pozlanır ve bir .py dosyasından yürütülür.C++/Cython projesini bir yürütülebilir dosyaya nasıl en iyi şekilde derlersiniz?

Artık tüm şeyi bağımsız bir yürütülebilir dosyaya derlemek istedim.

Şimdi sorum: Bunu yapmanın en iyi yolu nedir? Cython'a geçmeyi, python dosyalarını derlemeyi ve kütüphaneyi bağlamayı denedim. Ancak bir yürütülebilir, sadece paylaşılan kütüphaneleri derlemek için distutils/setup.py ile doğrudan bir yol yok gibi görünüyor.

kolayca hem .Cpp derlemek ve bir kerede yürütülebilir içine dosyaları .pyx bir yolu var mı?

Bu yüzden bir çok destek dosyasından (python sarmalayıcıdan) kurtulabiliyor ve paylaşılan bir kütüphaneyi içe aktarmadan ve tüm dosyaları piyezleyiciyle paketlemeden C++/python'un düzgün bir karışımını elde edebiliyorum?

+0

env http://wiki.cython.org/EmbeddingCython
Not yukarıda belirtilen bu paketleme seçeneklerine benzer "donma" yaklaşımı, ama kendini inşa etmek ekstra uzunluk gitmez içeriyordu: bir --embed bayrağıyla bir giriş noktası Cython için Uygulamanızın ana giriş noktası python betikleri ve C++ bölümü kütüphane mi? – jdi

+0

Evet, giriş noktası Python'da. C++'da (ki bunlar oldukça fazla) tüm pahalı işlemleri yazıp Python'daki C++ sınıflarına (devralma) ek işlevsellik ekliyorum. Ana "akış", gui, ağ malzemesi ve benzerleri Python'da yazılmıştır. –

+0

[Bu soru] 'nun yanıtı (http://stackoverflow.com/q/2581784/87699) Cython'u doğrudan bir yürütülebilir dosyaya derlemek için işaretçiler verir. Durumunuz biraz farklı ama yine de yararlı olabilir. –

cevap

1

Sen içine görünmelidir: pencereler için

sizin giriş noktasıdır, bir paket mümkün olacak Bir app/exe/binary içine bağımsız tercüman, çevre ve kaynak konumu. Tüm kitaplık modüllerini kendi kendine yeten site paketleri içine toplar.

Normal saf pdf dosyaları kullanmıyorsanız ve yalnızca stelon dosyaları varsa, o zaman bunlardan birine bir yorumlayıcı eklemek de mümkündür.

+0

Sanırım sorumu biraz belirsiz: Python kodunun (ya da aynı zamanda) derlenmiş olduğu bir çözümü tercih ederim. –

+0

Bu şekilde paketlenmesi, cython ve C++ uzantılarınızı derlemenizi ve paketlemenizi engellemez. Py kodunu başlatmak için hala bir python yorumcısına ihtiyacınız var. – jdi

+0

@ snøreven: Evet, belki sorularınızla ilgili bir şey özlüyorum. Cpp + pyx'inizi tek bir modül haline getirmeye mi çalışıyorsunuz? Çünkü cpp + pyx'inizden "yürütülebilir" kelimesini söylediniz, bu da bana kafa karıştırıcı. Ne olursa olsun, giriş noktanız için bir tercümana ihtiyaç duyacaksınız ve python komut dosyalarını tek başına çalıştırılabilir hale getirmenin tek yolu bu ambalaj yaklaşımıdır. – jdi

İlgili konular