ÔÚLinuxϰ²×°OpenCV
¸ãÁËÈýÌìµÄOpenCVÖÕÓÚ°ÑÕâ¸öÀà¿â¼ÓÉÏÈ¥ÁË¡£Ô±¾ÊÇʹÓÃRed Hat Linux 9£¬µ«ÊÇÇ¿ÁÒ²»ÍƼö£¬ÒòΪ»ù±¾ÉϺܶàºÜ¶àµÄÈí¼þ¶¼ÒªÖØÐÂÉý¼¶¸üС£gcc±ØÐëÉý¼¶µ½4.x£¬ÔògmpºÍmpfrÒ²Òª¸üУ¬makeÒ²Òªµ½3.8°æ±¾£¬²¢ÇÒglibcÒ²±ØÐëÔÚ2.6°æ±¾¡£±àÒëgccʵÔÚÊÇ̫ʹ¿àÁË£¬ÎÞ±ÈÎޱȵÄÍ´¿à£¬ºÄʱ3¸ö¶àhours£¬»¹ÊÇÀ´Á˸öerror£¨glibc±ØÐëÉý¼¶£©¡£±àÒëgccÓÐÒ»µãҪעÒâµÄÊǽ«gmpºÍmpfr½âѹËõÔÚgccµÄsourceÎļþ¼ÐÏ£¬²¢ÇÒ½«Îļþ¼ÐÃû¸ÄΪgmpºÍmpfr£¬²»ÐèÒªconfigure£¬Ò²²»ÐèÒªmakeºÍmake install£¬ÔÚ°²×°gccÖлá×Ô¶¯×öµÄ¡£
glibcÊÇcÀà¿â£¬ÎÒÔÚmakeÖ®ºóÓÐerror£¬Ç¿ÐÐmake installÁË£¬½á¹ûµ¼ÖÂÕÒ²»µ½g++ÁË¡£·´Õý²»ÒªÇáÒ׳¢ÊÔ¡£
×îºó»¹ÊÇÑ¡ÓÃUbuntu Linux 8.04¡£²»¹ýҲҪװµã¶«Î÷µÄ¡£
°²×°UbuntuµÄ¹ý³ÌҲͦ¾À½áµÄ£¬±ØÐëÔÚÊÔÓõÄϵͳÀï°²×°£¬²¢ÇÒÔÚbootÀï¼Ó²ÎÊý¡£°´F6£¬ÔÚĩβ¼ÓÉÏnoreplace-paravirt¡£ÖØÐÂÆô¶¯VPC£¬ÕâÑùÄã¾Í¿ÉÒÔÕý³£Òýµ¼UbuntuϵͳÁË¡£½øÈëUbuntuÖ®ºó£¬ÄãÐèÒª²é¿´Ò»ÏÂGRUBµÄÒýµ¼²Ëµ¥ÊÇ·ñÌí¼ÓÁË“noreplace-paravirt”²ÎÊý£¬Èç¹ûûÓеϰ£¬ÐèÒªÄãÌí¼ÓÉÏ¡£²»¹ýºÃÏñÈç¹ûÄã°´ÕÕÉÏÃæµÄ·½·¨°²×°ºÃUbuntuÖ®ºó£¬²ÎÊý¾ÍÒѾÌí¼ÓºÃÁË¡£
Ò»Çа²×°ÍêÖ®ºóÏÈÊǼ¤»îroot£¬ÖÕ¶ËÀïÃæ´òsudo passwd£¬ÊäÈ뵱ǰÓû§µÄÃÜÂëºÍеÄrootÃÜÂë£¬ÖØ¸´Ö®¡£È»ºóÊÇÉÏÍø£¬vpcÀïÃæÉèÖÃNATÉÏÍø·½Ê½£¬ÔÚlinuxϵͳÀïÃæÑ¡Ôñ×Ô¶¯»ñÈ¡ip£¨ÍøÂçÉèÖÃÀïÃæÑ¡µÚ¶þͼ±ê£©¡£
È»ºóô°²×°g++£¬ÖÕ¶Ë£º
sudo apt-get install build-essential
È»ºó°²×°OpenCV£¬ÖÕ¶Ë
apt-get update
apt-get install libcv1 libcvaux1 libhighgui1 libcv-dev libcvaux-dev libhighgui-dev
´ó¸ÅÒªÏÂÔØ30¶àMµÄÎļþ£¬µÈÒ»»á¾ÍºÃÁË~
È»ºó½«OpenCVµÄÎļþ½âѹ£¬ÅäÖü°°²×°£º
tar –xvf Open*
cd Open*
./configure
Èç¹û³öÏÖnow run make±íʾûʲôÎÊÌ⣬Ȼºó¾ÍmakeÒÔ¼°make install£¨ÌáʾȨÏÞ²»¹»µÄ»°ÃüÁî֮ǰ¼Ósudo£©
ÎÒÊÇÒ»´Î³É¹¦µÄ~ûÓÐÎÊÌâ~¹þ¹þ~~
È»ºóÓÃÔÚ/etc/ld.so.confÎļþµÄĩβ¼ÓÒ»¾ä/usr/local/lib£¨ÁíÆðÒ»ÐУ¬²¢ÇÒʹÓÃrootÉí·Ý£©¡£
ÔÚÖÕ¶ËÖÐÖ´ÐÐsudo ldconfig¡£
È»ºó²âÊÔ°²×°ºÃµÄ¿â¡£
cd samples/c
g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing
ÒªÌØ±ð×¢ÒâµÄÊÇpkg-configºÍopencvÖ®ºó¶¼ÓÐÒ»¸öµã£¬Î»ÓÚ¼üÅÌÉÏ1µÄ×ó±ßÄǸö£¬·ñÔò½«»áÏÔʾpkg-configÎÞ·¨ÕÒµ½¡£±àÒëÍêÖ®ºóÔËÐУº
./drawing
Èç¹ûÌáʾÓпâÕÒ²»µ½£¬Ôò˵Ã÷ld.so.confûÓмÓÄǾ仰
Ïà¹ØÎĵµ£º
/*±¾ÎÄÑ¡×Ô²©´´linuxʵÑéÖ¸µ¼Êé
*Áô×Å×Ô¼ºÑ§Ï°Ö®ÓÃ
*ÔÚÕâÀï±£´æ×Å£¬·ÖÏíÒ»ÏÂ*/
VI ¼ò½é
vi ÊÇ Linux/Unix ÊÀ½çÀKΪÆÕ±éµÄ¿ÉÊÓ»¯µÄÈ«ÆÁÄ»Îı¾±à¼Æ÷(visual edit),¼¸ºõ¿É
ÒÔ˵ÈκÎһ̨ Linux/Unix »úÆ÷¶¼»áÌṩÕâ¸öÈí¼þ¡£
vi ÓÐÈýÖÖ״̬,¼´±à¼·½Ê½¡¢²åÈ뷽ʽºÍÃüÁî·½Ê ......
ÔÚ32λƽ̨ÉϱàÒ붯̬¿âûÓÐɶÎÊÌ⣬Äõ½x86_64λƽ̨ÉϱàÒëʱ³öÏÖÁËÎÊÌâ¡£
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
ÕÕ×ÅÌáʾ±àÒë´úÂëµÄʱºò¼ÓÈë -fPICÑ¡Ïî¾Íok.
......
±¾ÎÄÏêϸ½éÉÜÈçºÎ±àдһ¸öÏÔ¿¨µÄÇý¶¯³ÌÐò¡£
framebuffer
deviceÔÚÄÚºËÀïÃæ×÷ΪÏÔ¿¨Çý¶¯Ä£ÐÍ£¬Ðí¶àº¯ÊýºÍÊý¾Ý½á¹¹¶¼ÊÇÌØ¶¨£¬ÕýÊÇÕâÐ©ÌØ¶¨µÄ¶«Î÷ΪÎÒÃǵıà³ÌÌṩÁË·½±ã¡£
Òª¿ª·¢frame buffer
deviceÇý¶¯£¬ÄãÓ¦¸ÃÔĶÁSource\Source\Documentation\fbÏÂÃæµÄ˵Ã÷Îļþ£¬Èý¸öÖØÒªÎļþ00-
INDEX£¬framebuffer.txt£¬internal ......
linux²¢²»ÊÇʵʱ²Ù×÷ϵͳ£¬°ÑÏÂÃæµÄ´úÂëÔËÐÐÒ»±é¾ÍÄܹ»Àí½âÁË£¬´úÂëÓкÜÏêϸµÄ×¢ÊÍ¡£
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <string.h>
void * thr_fun(void *arg)
{
int policy, ret;
str ......