如何在gcc上编译Opencv API

use*_*089 4 linker gcc opencv header

我正在尝试编译一个包含Opencv库API的.C文件.
似乎编译器没有找到API.我使用普通命令进行编译

   gcc new.c -c
   gcc new.o -o new1 -l highgui  
Run Code Online (Sandbox Code Playgroud)

highgui是一个.h文件,它从Opencv lib调用其他.h文件

我认为我遇到与下面的线程相同的问题,因为我得到几乎相同的错误.

GCC:我如何使这个编译和链接工作?

Yan*_*Xie 6

您可以使用pkg-config命令获取编译器/链接器选项.像这样

gcc `pkg-config --cflags opencv` `pkg-config --libs opencv` new.c
Run Code Online (Sandbox Code Playgroud)

请注意上面的标点符号是"不是".

或者你可以使用CMake.像这样写一个CMakeLists.txt

cmake_minimum_required (VERSION 2.6)
project (new1)
find_package (OpenCV REQUIRED)
include_directories (${OpenCV_INCLUDE_DIRS})
add_executable (new1 new.c)
target_link_libraries (new1 ${OpenCV_LIBS})
Run Code Online (Sandbox Code Playgroud)

然后你可以这样建立

mkdir build
cd build
cmake -DOpenCV_DIR=<the-directory-contating-OpenCVConfig.cmake> ..
make
Run Code Online (Sandbox Code Playgroud)