Есть простая программа:
drull@ubuntu:tmp$ cat c.cpp
#include <opencv/highgui.h>
int main()
{
CvCapture *capture;
capture=cvCreateCameraCapture(0);
char c=0;
cvNamedWindow("win",CV_WINDOW_AUTOSIZE);
IplImage *img;
while(c!='c')
{
img=cvQueryFrame(capture);
cvShowImage("win",img);
c=cvWaitKey(100);
}
}
1. Компиляция. До обновления у меня был g++ 4.4 и все было хорошо. Я собирал этот исходник вот так: g++ -lhighgui c.cpp, и все работало. Когда обновился, у меня g++ стал версии 4.5, и при попытке собрать этот исходник я получаю следующее, хотя я указал -lhighgui:
drull@ubuntu:tmp$ ls -l `which g++`
lrwxrwxrwx 1 root root 7 2011-03-02 00:38 /usr/bin/g++ -> g++-4.5
drull@ubuntu:tmp$ g++ -lhighgui c.cpp
/tmp/ccAGBjqt.o: In function `main':
c.cpp:(.text+0x11): undefined reference to `cvCreateCameraCapture'
c.cpp:(.text+0x2e): undefined reference to `cvNamedWindow'
c.cpp:(.text+0x3c): undefined reference to `cvQueryFrame'
c.cpp:(.text+0x54): undefined reference to `cvShowImage'
c.cpp:(.text+0x60): undefined reference to `cvWaitKey'
collect2: ld returned 1 exit status
drull@ubuntu:tmp$ g++-4.4 -lhighgui c.cpp
drull@ubuntu:tmp$
2. cvCreateCameraCapture блокирует камеру и не дает другим приложениям (тому же скайпу) ее использовать. Я хочу чтобы считывание с камеры проходило в неблокирующем ее режиме. Это возможно как-то реализовать?