在OpenCV中编译程序

时间:2016-06-07 05:45:15

标签: opencv

我刚刚开始使用OpenCV,并且无法在this website上运行示例代码。

我制作了一个.cpp文件并将代码复制/粘贴。

我在命令行上运行了以下命令:

  

g ++ program.cpp -o program

我收到了以下错误:

  

未定义引用`cv :: imread(cv :: String const&,int)'

     

program.cpp :(。text + 0x128):未定义的引用   `cv :: namedWindow(cv :: String const&,int)'

     

program.cpp :(。text + 0x17d):未定义的引用   `cv :: imshow(cv :: String const&,cv :: _ InputArray const&)'

     

program.cpp :(。text + 0x1a5):对`cv :: waitKey(int)'的未定义引用

     

/tmp/cceJEar6.o:在函数`cv :: String :: String(char const *)'中:

     

program.cpp :( text._ZN2cv6StringC2EPKc [_ZN2cv6StringC5EPKc] +送出0x4d):   未定义的引用`cv :: String :: allocate(unsigned long)'

它似乎是一个链接问题,它无法找到cv命名空间或opencv库

3 个答案:

答案 0 :(得分:4)

编译时未指定OpenCV库。 使用此命令:

g++ `pkg-config --cflags opencv` codename.cpp `pkg-config --libs opencv` -o codename

答案 1 :(得分:0)

您必须将库文件指定为链接器标志。

  

g ++ program.cpp -o program -lopencv_core -lopencv_highgui

对于此特定程序,只需要OpenCV的核心 highgui 模块。随着程序中添加其他模块的功能,该列表将会增加。

答案 2 :(得分:0)

g++ -ggdb `pkg-config --cflags opencv` -o outResize *.cpp `pkg-config --libs opencv`


然后编译
./run