ฉันจะสร้างแพ็คเกจ. deb ด้วยคอมไพล์ OpenCV ที่คอมไพล์แล้วได้อย่างไร


9

OpenCV 2.4.2 ใช้เวลา 6 ชั่วโมงในการคอมไพล์บน Raspberry Pi และฉันชอบที่จะทำทุกอย่างให้เป็นเดบิต แต่ฉันไม่เคยทำแบบนั้นมาก่อน ฉันจะทำแพคเกจไฟล์ที่คอมไพล์แล้วเพื่อให้ดาวน์โหลดหรือรวมไลบรารี่อื่น ๆ ที่จำเป็นได้อย่างไร?


นี่เป็นคำถามเฉพาะของ Linux มากกว่า Pi ที่เกี่ยวข้องหรือไม่ อาจจะดีกว่าที่จะถาม Debain เกี่ยวกับเรื่องนี้?

สวัสดี. ตั้งแต่นี้เป็นทั่วไป Debian คุณจะคิดว่าผมย้ายนี้เพื่อขอให้อูบุนตูหรือUnix และ Linux ?
Jivings

@Jivings ฉันคิดว่ามันเกี่ยวข้องกับ PI เนื่องจากฉันไม่รู้อะไรเกี่ยวกับ hard float เทียบกับ soft float และฉันรู้ว่ามี caveats กับ Pi เกี่ยวกับเรื่องนั้น หากมีฉันทามติทั่วไปที่ใครบางคนที่นั่นสามารถช่วยตอบคำถามนี้ฉันไม่มีปัญหากับมันถูกย้าย

คำตอบ:


4

ถ้าโดย OpenCV คุณหมายถึงห้องสมุดวิสัยทัศน์คอมพิวเตอร์ที่http://opencv.willowgarage.com/จากนั้นพวกเขาจะได้รับการบรรจุสำหรับเดเบียนโดยทีมวิทยาศาสตร์ Debian

ทางออกที่ดีที่สุดของคุณคือการดาวน์โหลดแพคเกจแหล่ง debianised จากมิเรอร์เดเบียนที่ใกล้ที่สุดของคุณแก้ไข debian / กฎและ / หรือ Makefile หรือกำหนดค่าอื่น ๆ ตามที่จำเป็นในการรวบรวมอย่างถูกต้องในราสเบอร์รี่ pi และสร้างแพคเกจ

งานบรรจุภัณฑ์เสร็จสมบูรณ์แล้วไม่จำเป็นต้องทำอีกครั้ง .... และอีกครั้งและอีกครั้งทุกครั้งที่คุณต้องการอัปเดต

มีแพ็คเกจไบนารีทั้งหมด แต่ libopencv-dev น่าจะเป็นสิ่งที่คุณต้องการเริ่มต้นด้วยhttp://packages.debian.org/search?keywords=libopencv-dev


แพ็คเกจที่เผยแพร่จะทำงานกับสถาปัตยกรรม ARM เช่น Raspberry Pi หรือไม่ ฉันหวังว่าฉันจะเข้าใจแพคเกจและการอ้างอิงได้ดีขึ้น แต่ดูเหมือนว่าฉันจะไม่เปิดตัวแพ็คเกจสำหรับโปรเซสเซอร์ใน Raspberry Pi โดยเฉพาะแพคเกจของพวกเขาจะไม่ทำงาน
ด่าน B

คุณต้องอ่านผิดในสิ่งที่ฉันเขียน ผมพูดกับดาวน์โหลดเดเบียนแหล่งแพคเกจและคอมไพล์สำหรับราสเบอร์รี่ Pi 'onlinemarketresults' มีสภาพแวดล้อมการรวบรวม RPi (หรือการรวบรวมข้าม) แล้วและรู้วิธีการรวบรวม RPi เขาแค่อยากรู้วิธีสร้างแพ็คเกจ
cas

11

ฉันคิดว่าฉันจะเพิ่มคำตอบที่ดีกว่าสำหรับคนอื่นที่สังเกตกระทู้นี้

ดังนั้นหากคุณประสบปัญหาในการสร้าง opencv บนอุปกรณ์คุณอาจทำตามคำแนะนำที่นี่:

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

ในกรณีนี้หากคุณไม่ได้เพิ่ม-D argsพารามิเตอร์การแทนที่ CMake แบบไดนามิกในขั้นตอนที่สองและคุณเพียงแค่เรียกใช้cmake ..ภายในไดเรกทอรีการสร้าง (คุณสร้าง) มันจะสร้างCMakeCache.txtไฟล์

หากคุณแก้ไขCMakeCache.txtไฟล์คุณสามารถเปลี่ยน:

CPACK_BINARY_DEB:BOOL=ON

... นอกเหนือจากตัวแปรที่ระบุอื่น ๆ ในลิงก์ opencv ด้านบน แทนที่จะวิ่งmakeหรือmake install... แค่วิ่งmake packageแล้วเวทมนตร์ก็เกิดขึ้น

คำเตือน:หากคุณมีWITH_CUDA:BOOL=ONคุณอาจมีปัญหาการพึ่งพากับผู้ห่อ - และนั่นเป็นคำถามที่แตกต่างกันโดยสิ้นเชิง ...

สำหรับข้อมูลเพิ่มเติมดูCPACK_*_*:BOOLพารามิเตอร์ในไฟล์ cmake และศึกษาเอกสารประกอบของ CPack:

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


สิ่งนี้สร้างไฟล์. deb สองไฟล์ tar และสคริปต์ ข้อใดต่อไปนี้ที่ต้องแจกจ่ายและเรียกใช้บนระบบเป้าหมาย ทั้งหมดหรือไม่ พวกเขาต้องการไฟล์ที่รองรับหรือไม่?
Alex

@Alex ลืมเกี่ยวกับโพสต์นี้เมื่อปีที่แล้ว ดังนั้นคุณควรมีOpenCV-*-{libs,dev}.deb คุณต้องการทั้ง ฉันคิดว่า dev มีส่วนหัวที่ ld ใช้เชื่อมโยงกับ. so ใน libs นอกจากนี้คุณยังสามารถคิดออกโดยเรียกใช้dpkg -c OpenCV-*.debแพคเกจเพื่อแสดงเนื้อหา นอกจากนี้หากคุณสร้างสิ่งนี้จาก source.tar คุณอาจไม่มีหมายเลขเวอร์ชันและdpkg -i $pkgจะไม่เป็นเช่นนี้ คุณสามารถบอกได้ว่ามันบอกว่าOpenCV-unknown-*{dev,libs}.debในกรณีใดgit clone github.com/Itseez/opencvและgit checkout $tagในแท็บออก หากคุณสร้างจากด้านบนของต้นไม้คุณจะได้รับแท็ก deb
hhony

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.