我正在尝试编译一个包含Opencv库API的.C文件 似乎编译器没有找到API。我使用普通命令进行编译
gcc new.c -c
gcc new.o -o new1 -l highgui
highgui是一个.h文件,它从Opencv lib调用其他.h文件
我认为我遇到与下面的线程相同的问题,因为我得到几乎相同的错误。
答案 0 :(得分:6)
您可以使用 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
答案 1 :(得分:1)
尝试以下命令
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
假设在/ usr / local目录下安装了OpenCV。
答案 2 :(得分:0)
尝试编写Harris命令。
它告诉您的编译器在/usr/local/include/opencv
和/usr/local/include/opencv2
目录(-I
switch)中另外查找头文件,并在/usr/local/lib/
(-L
)中查找库。接下来,它告诉链接器-l
切换到链接库opencv_core等...
当您遇到此类问题时,您需要找到库文件,告诉编译器它们的路径并告诉他要链接哪些库,例如opencv_core
而不是libopencv_core
{1}}。