Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用opencv时未找到lopencv_core_C++_Opencv_Gcc_Makefile_Linker - Fatal编程技术网

C++ 使用opencv时未找到lopencv_core

C++ 使用opencv时未找到lopencv_core,c++,opencv,gcc,makefile,linker,C++,Opencv,Gcc,Makefile,Linker,我已经通过home brew安装了opencv3,pkg config也可以通过 pkg-config --cflags --libs opencv 输出包含-lopencv_core,但是当我像这样在Makefile中添加它时 CC=clang++ CFLAGS= -Wall -g -std=c++0x LFLAGS= -I/usr/local/Cellar/opencv3/3.2.0/include -I/usr/local/Cellar/opencv3/3.2.0/bin -I/usr/

我已经通过home brew安装了opencv3,pkg config也可以通过

pkg-config --cflags --libs opencv
输出包含-lopencv_core,但是当我像这样在Makefile中添加它时

CC=clang++
CFLAGS= -Wall -g -std=c++0x
LFLAGS= -I/usr/local/Cellar/opencv3/3.2.0/include -I/usr/local/Cellar/opencv3/3.2.0/bin -I/usr/local/Cellar/opencv3/3.2.0/lib -lopencv_core

CFILES=blah.cpp
HFILES=blah.hpp
OFILES=blah.o

all:    main

%.o:    %.cpp $(HFILES)                                                                                   
        $(CC) -c $(CFLAGS) $< -o $@ $(LFLAGS)

main:   $(OFILES) $(HFILES)
    $(CC) $(CFLAGS) $(OFILES) -o main $(LFLAGS)

我应该如何将其链接到gcc?

所述库的
-l
选项位于通常的位置。它的位置和外观因操作系统而异,您没有提到。可能可以通过添加
-L/usr/local/lib
或其他路径来修复此问题。

-L
选项在所述库的常用位置查找。它的位置和外观因操作系统而异,您没有提到。可能可以通过添加
-L/usr/local/lib
或一些其他路径到您知道库所在的位置来修复它。

假设您希望
CFLAGS
作为编译选项,而
LFLAGS
作为 为悬挂机构的选项,设置:

CFLAGS= -Wall -g -std=c++0x
LFLAGS= -I/usr/local/Cellar/opencv3/3.2.0/include -I/usr/local/Cellar/opencv3/3.2.0/bin -I/usr/local/Cellar/opencv3/3.2.0/lib -lopencv_core
他们感到困惑

-I路径
选项对于编译有意义,对于链接没有意义。信息技术 告诉预处理器在
路径
中搜索包含在其中的头文件 源代码。在以下位置将有头文件:

/usr/local/Cellar/opencv3/3.2.0/include
/usr/local/Cellar/opencv3/3.2.0/bin
/usr/local/Cellar/opencv3/3.2.0/lib
以下文件中没有头文件:

/usr/local/Cellar/opencv3/3.2.0/include
/usr/local/Cellar/opencv3/3.2.0/bin
/usr/local/Cellar/opencv3/3.2.0/lib
只是可执行文件,它们与构建程序无关。并且在以下文件中不会有头文件:

/usr/local/Cellar/opencv3/3.2.0/include
/usr/local/Cellar/opencv3/3.2.0/bin
/usr/local/Cellar/opencv3/3.2.0/lib
只是静态或动态库

链接器找不到的库
libopencv\u core
大概是 在
/usr/local/cillar/opencv3/3.2.0/lib中
。告诉你真相的方法 在此搜索库的链接器是:

-L/usr/local/Cellar/opencv3/3.2.0/lib -lopencv_core
因此,这些设置是有意义的:

CFLAGS := -Wall -g -std=c++0x -I/usr/local/Cellar/opencv3/3.2.0/include
LFLAGS := -L/usr/local/Cellar/opencv3/3.2.0/lib -lopencv_core
然而,要编译并链接一个
opencv
程序,您可能会更好 将其留给
pkg config
以获得正确的选项:

CFLAGS := -Wall -g -std=c++0x $(shell pkg-config --cflags opencv)
LFLAGS := $(shell pkg-config --libs opencv)

假设您希望
CFLAGS
作为编译选项,而
LFLAGS
作为编译选项 为悬挂机构的选项,设置:

CFLAGS= -Wall -g -std=c++0x
LFLAGS= -I/usr/local/Cellar/opencv3/3.2.0/include -I/usr/local/Cellar/opencv3/3.2.0/bin -I/usr/local/Cellar/opencv3/3.2.0/lib -lopencv_core
他们感到困惑

-I路径
选项对于编译有意义,对于链接没有意义。信息技术 告诉预处理器在
路径
中搜索包含在其中的头文件 源代码。在以下位置将有头文件:

/usr/local/Cellar/opencv3/3.2.0/include
/usr/local/Cellar/opencv3/3.2.0/bin
/usr/local/Cellar/opencv3/3.2.0/lib
以下文件中没有头文件:

/usr/local/Cellar/opencv3/3.2.0/include
/usr/local/Cellar/opencv3/3.2.0/bin
/usr/local/Cellar/opencv3/3.2.0/lib
只是可执行文件,它们与构建程序无关。并且在以下文件中不会有头文件:

/usr/local/Cellar/opencv3/3.2.0/include
/usr/local/Cellar/opencv3/3.2.0/bin
/usr/local/Cellar/opencv3/3.2.0/lib
只是静态或动态库

链接器找不到的库
libopencv\u core
大概是 在
/usr/local/cillar/opencv3/3.2.0/lib中
。告诉你真相的方法 在此搜索库的链接器是:

-L/usr/local/Cellar/opencv3/3.2.0/lib -lopencv_core
因此,这些设置是有意义的:

CFLAGS := -Wall -g -std=c++0x -I/usr/local/Cellar/opencv3/3.2.0/include
LFLAGS := -L/usr/local/Cellar/opencv3/3.2.0/lib -lopencv_core
然而,要编译并链接一个
opencv
程序,您可能会更好 将其留给
pkg config
以获得正确的选项:

CFLAGS := -Wall -g -std=c++0x $(shell pkg-config --cflags opencv)
LFLAGS := $(shell pkg-config --libs opencv)

尝试链接
/usr/local/cillar/opencv3/3.2.0/lib中的所有OpenCV库
能否将/usr/local/cillar/opencv3/3.2.0/lib中带有“core”的库和符号链接名称添加到问题文本中,请?尝试链接
/usr/local/cillar/opencv3/3.2.0/lib中的所有OpenCV库
能否将库和符号链接名称从/usr/local/cillar/opencv3/3.2.0/lib添加到问题文本中?