2016-03-22 14 views
0

Resmi web sitesinden en yeni ffmpeg kaynağını kontrol ettim. Şimdi ffmpeg'i bağımsız bir yürütülebilir dosya olarak derlemek ve kurmak istiyorum. İşteFfmpeg, Android'deki bir konumdan bağımsız yürütülebilir (PIE) veya PIC olarak nasıl oluşturulur?

Ben bir PIE yapma seçeneğini --enable-pic ekledik

./configure --prefix=/usr/local --enable-gpl --enable-pic --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 

gibi benim configure komut görüntüsü. Oluşturma işlemi başarıyla tamamlandığında Ancak ne zaman ve ben bir sertleştirme çek yaptığınızda aşağıdaki gibi sonra çıktı aşağıda Bunun anlamı ffmpeg hala PIE değildir söylüyor

ffmpeg: 
Position Independent Executable: no, normal executable! 
Stack protected: yes 
Fortify Source functions: yes (some protected functions found) 
Read-only relocations: yes 
Immediate binding: no, not found! 

ffmpeg

sertleştirme-onay almak. Burada neyi özlediğimi söyleyen var mı? PIE desteği eklemek için yapılması gereken başka değişiklikler var mı.

cevap

0

sepecially senin params, PIE ve PIC karıştırmayın ve bağlayıcı seçeneklerine -pie geçemiyor - PIC paylaşılan kütüphaneler ve DEĞİL executeables

https://fedoraproject.org/wiki/Changes/Harden_All_Packages

+0

Farkı şimdi anlıyorum anlıyorum .. ama nasıl destekleyebilirim? Ffmpeg –

2
Sen -fPIE ve eklemem gerekiyor

içindir - pasta CFLAGS seçenekleri ve LDFLAGS aşağıdaki gibi configure komut dosyasına:

./configure <other options> \ 
--extra-cflags="-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie" \ 
--extra-ldflags="-L../x264 -fPIE -pie" 

son komut zaten bu değişiklikleri var.

+0

-fPIE sadece cflags için, ve -pie sadece ldflags için – tmm1

İlgili konular