Bagaimana saya bisa membuat paket .deb dengan kompilasi OpenCV kompilasi saya?


9

OpenCV 2.4.2 membutuhkan waktu 6 jam untuk mengkompilasi pada Raspberry Pi dan saya ingin mengemas semuanya sebagai deb tetapi saya belum pernah melakukannya sebelumnya. Bagaimana saya bisa mengemas file yang dikompilasi sehingga mereka mengunduh atau memasukkan perpustakaan lain yang diperlukan?


Apakah ini lebih merupakan pertanyaan spesifik Linux daripada pertanyaan terkait Pi? Mungkin lebih baik bertanya pada Debain tentang hal itu?

Hai yang disana. Karena ini adalah Debian umum, apakah Anda keberatan jika saya memindahkan ini ke Tanya Ubuntu atau Unix & Linux ?
Jivings

@ Jivings Saya pikir ini terkait PI karena saya tidak tahu apa-apa tentang hard float vs soft float dan saya tahu ada peringatan dengan Pi mengenai hal itu. Jika ada konsensus umum bahwa seseorang di sana dapat membantu menjawab pertanyaan ini, saya tidak punya masalah dengan itu dipindahkan

Jawaban:


4

Jika dengan OpenCV yang Anda maksud perpustakaan visi komputer di http://opencv.willowgarage.com/ maka mereka sudah dikemas untuk debian oleh Tim Sains Debian.

Taruhan terbaik Anda adalah mengunduh paket source debianised dari mirror debian terdekat Anda, memodifikasi debian / aturan dan / atau Makefile atau mengkonfigurasi dll yang diperlukan untuk dikompilasi dengan benar pada raspberry pi dan membangun kembali paket.

Pekerjaan pengemasan sudah selesai, tidak perlu melakukannya lagi .... dan lagi dan lagi setiap kali Anda ingin memperbaruinya.

Ada banyak paket biner, tetapi libopencv-dev mungkin adalah yang ingin Anda mulai dengan http://packages.debian.org/search?keywords=libopencv-dev


Apakah paket yang diterbitkan bekerja pada arsitektur ARM seperti Raspberry Pi? Saya berharap saya lebih memahami paket dan dependensi tetapi bagi saya tampaknya kecuali willowgarage merilis sebuah paket khusus untuk prosesor di Raspberry Pi maka paket mereka tidak akan berfungsi.
Dan B

Anda pasti salah membaca apa yang saya tulis. Saya berkata untuk mengunduh paket-paket SOURCE debian dan mengkompilasi ulang untuk Raspberry Pi. 'hasil pemasaran online' telah memiliki lingkungan kompilasi RPi (atau kompilasi silang) yang diatur dan tahu cara mengkompilasi untuk RPi, ia hanya ingin tahu cara membuat paket.
cas

11

Saya pikir saya akan menambahkan jawaban yang lebih baik untuk orang lain yang mengamati utas ini.

Jadi, jika Anda telah mengalami kesulitan membangun opencv pada perangkat, Anda mungkin telah mengikuti instruksi di sini:

http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html

Dalam hal ini, jika Anda tidak menambahkan -D argsparameter CMake ke override secara dinamis di langkah kedua dan Anda hanya menjalankan cmake ..di dalam direktori build (yang Anda buat), itu akan menghasilkan CMakeCache.txtfile.

Jika Anda mengedit CMakeCache.txtfile, Anda dapat mengubah:

CPACK_BINARY_DEB:BOOL=ON

... selain variabel tertentu lainnya di tautan opencv di atas. Alih-alih berlari makeatau make install... jalankan saja make packagedan keajaiban terjadi.

Peringatan: Jika Anda memilikinya, WITH_CUDA:BOOL=ONAnda mungkin memiliki masalah ketergantungan dengan pembuat paket - dan itu pertanyaan yang sama sekali berbeda ...

Untuk info lebih lanjut, lihat CPACK_*_*:BOOLparameter dalam file cmake, dan lihat dokumentasi CPack:

http://www.cmake.org/Wiki/CMake:CPackPackageGenerators


Ini menghasilkan beberapa file .deb, beberapa file tar dan skrip. Manakah dari ini yang perlu didistribusikan dan dijalankan pada sistem target? Semua? Apakah mereka memerlukan file pendukung?
Alex

@Alex, lupa tentang posting ini tahun lalu. Jadi, Anda harus memiliki. OpenCV-*-{libs,dev}.deb Anda membutuhkan keduanya. Saya pikir dev memiliki header yang saya gunakan untuk menghubungkan dengan .so di libs. Anda juga dapat mengetahui hal ini dengan menjalankan dpkg -c OpenCV-*.debpaket, untuk membuat daftar konten. Juga, jika Anda membuat ini dari source.tar, Anda mungkin tidak memiliki nomor versi dan dpkg -i $pkgtidak akan suka ini. Anda dapat mengetahui apakah ia mengatakan OpenCV-unknown-*{dev,libs}.debDalam hal ini git clone github.com/Itseez/opencvdan git checkout $tagdi tab rilis. Jika Anda membangun dari atas pohon, Anda juga mendapatkan tag pada deb.
hhony

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.