如何在gcc上编译opencvapi

如何在gcc上编译opencvapi,opencv,gcc,header,linker,Opencv,Gcc,Header,Linker,我正在尝试编译一个包含Opencv库API的.C文件。 编译器似乎没有找到API。我使用普通命令进行编译 gcc new.c -c gcc new.o -o new1 -l highgui highgui是一个.h文件,它从Opencv库调用其他.h文件 我想我和下面的线程有同样的问题,因为我得到了几乎相同的错误 尝试下面的命令 gcc -I/usr/local/include/opencv -I/usr/local/include/opencv2 -L/usr/local/l

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

   gcc new.c -c
   gcc new.o -o new1 -l highgui  
highgui是一个.h文件,它从Opencv库调用其他.h文件

我想我和下面的线程有同样的问题,因为我得到了几乎相同的错误

尝试下面的命令

gcc -I/usr/local/include/opencv -I/usr/local/include/opencv2 -L/usr/local/lib/ -g -o binary  main.c -lopencv_core -lopencv_imgproc -lopencv_highgui
假定OpenCV安装在/usr/local目录下

尝试使用所编写的命令。 它告诉编译器在
/usr/local/include/opencv
/usr/local/include/opencv2
目录(
-I
开关)中另外查找头文件,并在
/usr/local/lib/
中查找库(
-L
)。接下来,它告诉链接器使用
-l
切换到链接库opencv\u core等


当您遇到这种类型的问题时,您需要找到库文件,告诉编译器它们的路径,并告诉他要链接哪些库,在名称中省略库部分,例如
opencv_core
,而不是
libopencv_core

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

gcc `pkg-config --cflags opencv` `pkg-config --libs opencv` new.c
请注意上面的标点符号是“不是”

或者您可以使用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})
mkdir build
cd build
cmake -DOpenCV_DIR=<the-directory-contating-OpenCVConfig.cmake> ..
make
然后你可以这样建造

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})
mkdir build
cd build
cmake -DOpenCV_DIR=<the-directory-contating-OpenCVConfig.cmake> ..
make
mkdir构建
光盘制作
cmake-DOpenCV_DIR=。。
制作