I am using OpenCV to record the video from webcam. I used Xcode 6.4 to write a (C++) code to record the video on OS X Yosemite 10.10.4. It is working perfectly fine when I compile and run it from Xcode but when I want to compile (using g++ -o main main.cpp) it from terminal it generates following errors:
Undefined symbols for architecture x86_64:
"cv::VideoWriter::write(cv::Mat const&)", referenced from:
_main in main-027833.o
"cv::VideoWriter::VideoWriter(cv::String const&, int, double, cv::Size_<int>, bool)", referenced from:
_main in main-027833.o
"cv::VideoWriter::~VideoWriter()", referenced from:
_main in main-027833.o
"cv::VideoCapture::VideoCapture(int)", referenced from:
_main in main-027833.o
"cv::VideoCapture::~VideoCapture()", referenced from:
_main in main-027833.o
"cv::VideoCapture::operator>>(cv::Mat&)", referenced from:
_main in main-027833.o
"cv::Mat::deallocate()", referenced from:
cv::Mat::release() in main-027833.o
"cv::String::deallocate()", referenced from:
cv::String::~String() in main-027833.o
"cv::String::allocate(unsigned long)", referenced from:
cv::String::String(char const*) in main-027833.o
"cv::imshow(cv::String const&, cv::_InputArray const&)", referenced from:
_main in main-027833.o
"cv::waitKey(int)", referenced from:
_main in main-027833.o
"cv::fastFree(void*)", referenced from:
cv::Mat::~Mat() in main-027833.o
"cv::VideoCapture::get(int) const", referenced from:
_main in main-027833.o
"cv::VideoCapture::isOpened() const", referenced from:
_main in main-027833.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command fail
ed with exit code 1 (use -v to see invocation)
I know its because it can't link OpenCV lib. I tried using "vi
$HOME/.bash_profile" and then setting path like
"export PATH=$PATH:/usr/local/include"
and
"export PATH=$PATH:/user/local/lib"
but it doesn't help. Also I tried
g++ -o main main.cpp -l `pkg-config opencv --cflags --libs`
but of no use. I don't know how to specify path. Any help would be appreciated. Thanks!