nki*_*int 21 c++ opencv compilation image-processing
我有一个只导入的文件:
#include <iostream>
#include <stdio.h>
#include "cxcore.hpp"
#include "highgui.hpp"
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
}
Run Code Online (Sandbox Code Playgroud)
我尝试用g ++编译-I/usr/include/opencv -lopencv -lm m.cpp
但得到whit错误:
在/usr/include/opencv/cxcore.hpp:46中包含的文件中,来自m.cpp:5:/usr/include/opencv/cxmisc.h:214:错误:在'void之前的预期构造函数,析构函数或类型转换'/usr/include/opencv/cxmisc.h:220:错误:'int'之前的构造函数,析构函数或类型转换/usr/include/opencv/cxmisc.h:226:错误:'CV_INLINE'没有命名为输入/usr/include/opencv/cxmisc.h:516:错误:'CV_DEPTH_MAX'未在此范围内声明/usr/include/opencv/cxmisc.h:522:错误:'CV_DEPTH_MAX'未在此范围内声明/ usr/include/opencv/cxmisc.h:522:错误:'CV_CN_MAX'未在此范围内声明在m.cpp中包含的文件中:5:/usr/include/opencv/cxcore.hpp:70:错误:模板声明'cv :: CV_EXPORTS cv :: Size_'/usr/include/opencv/cxcore.hpp:71:错误:'cv :: CV_EXPORTS cv :: Point_'/usr/include/opencv/cxcore.hpp的模板声明: 72:错误:'cv :: CV_EXPORTS cv :: Rect_'/usr/include/opencv/cxcore.hpp:77的模板声明:错误:在'之前的预期初始化程序' fromUtf16'/usr/include/opencv/cxcore.hpp:78:错误:在'toUtf16'之前预期的初始化程序'/usr/include/opencv/cxcore.hpp:80:错误:'format'/ usr/include/opencv之前的预期初始化程序/cxcore.hpp:82:错误:在':'之前的预期初始化程序令牌m.cpp:38:错误:在输入结束时预期'}'
这是我的copencv lib内容:
alberto@zefiro:~$ ls /usr/include/opencv/
cvaux.h cvcompat.h cv.hpp cvtypes.h cvvidsurv.hpp cxcore.h cxerror.h cxmat.hpp cxoperations.hpp highgui.h ml.h
cvaux.hpp cv.h cvinternal.h cvver.h cvwimage.h cxcore.hpp cxflann.h cxmisc.h cxtypes.h highgui.hpp
Run Code Online (Sandbox Code Playgroud)
我在ubuntu 10.10上
kar*_*lip 54
您需要正确包含标题-I(大写i)和库-l(小写L).
在最新的OpenCV版本上,您应该:
#include <cv.h>
#include <highgui.h>
Run Code Online (Sandbox Code Playgroud)
然后尝试编译它:
g++ m.cpp -o app `pkg-config --cflags --libs opencv`
Run Code Online (Sandbox Code Playgroud)
注意:如果仅pkg-config --cflags --libs opencv在命令行中执行,您将看到需要包含在g ++命令行中的路径和库.
如果您的开发环境没有,pkg-config并且因此,karlphilip接受的答案不切实际,或者您需要知道链接您的应用程序所需的最少库集,然后假设代码如下
#include <cv.h>
#include <highgui.h>
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以从顶部开始依次从以下列表中添加库参数,直到找到所需的最少参数集:
-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
例如,本文顶部列出的C源代码仅使用
gcc hello.c -o hello \
-I /usr/include/opencv \
-L /usr/lib \
-lopencv_core \
-lopencv_imgproc
Run Code Online (Sandbox Code Playgroud)
在我的旧x86_64 Ubuntu 12.04机器上。
假设C ++代码例如
#include "core/core.hpp"
#include "highgui/highgui.hpp"
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
那么您将编译并与
g++ hello.cpp -o hello \
-I /usr/include/opencv2 \
-L /usr/lib \
-lopencv_core \
-lopencv_imgproc
Run Code Online (Sandbox Code Playgroud)
我建议你使用CMake来编译OpenCV,G++我认为这种方式更合适。
cmake_minimum_required(VERSION 3.1)
project(YOUR_PROJECT_NAME)
set(CMAKE_GXX_FLAGS "-Wall -Wextra -Wconversion -pedantic -std=gnu11")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(YOUR_EXCUTABLE YOUR_CODE_SOURCE_FILES)
target_link_libraries(YOUR_EXCUTABLE ${OpenCV_LIBS})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55406 次 |
| 最近记录: |