Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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++ 在64位mac上编译OpenCV代码_C++_Macos_Opencv_G++_32bit 64bit - Fatal编程技术网

C++ 在64位mac上编译OpenCV代码

C++ 在64位mac上编译OpenCV代码,c++,macos,opencv,g++,32bit-64bit,C++,Macos,Opencv,G++,32bit 64bit,我最近继承了一些OpenCV代码。我在mac上安装了openCV,内置于XCode中,然后编译并成功运行了我的第一个openCV“hello world”-ish程序 现在我正在尝试运行我得到的代码,但我得到的错误使我相信这是一个问题,原来的代码在32位Windows系统上运行,而我的代码在64位Mac上运行 当我通过输入“make”运行Makefile时 我很困惑;这是否意味着我安装的OpenCV是错误的,代码(特别是那些方法)需要更改,或者完全其他什么 注意:当我从vision.cpp代码中

我最近继承了一些OpenCV代码。我在mac上安装了openCV,内置于XCode中,然后编译并成功运行了我的第一个openCV“hello world”-ish程序

现在我正在尝试运行我得到的代码,但我得到的错误使我相信这是一个问题,原来的代码在32位Windows系统上运行,而我的代码在64位Mac上运行

当我通过输入“make”运行Makefile时

我很困惑;这是否意味着我安装的OpenCV是错误的,代码(特别是那些方法)需要更改,或者完全其他什么


注意:当我从vision.cpp代码中注释出问题方法时,一切都很好。

opencv\u imgproc
添加到LDFLAGS:

LDFLAGS = -I/usr/local/include/opencv -lm -lopencv_core -lopencv_highgui -lopencv_video -lopencv_imgproc

您还可以让计算机自动创建库:

CFLAGS = `pkg-config --cflags opencv` 
LDFLAGS = `pkg-config --libs opencv` -lm

以下是一个工作示例:

CXX = g++

SOURCES = aaa.cpp bbb.cpp
OBJS = $(SOURCES:.cpp=.o)

CXXFLAGS = -I. -I/opt/local/include \
            -std=c++11 -stdlib=libc++ \
            -g3 -Wall -O0
            # -std=c++0x -arch x86_64 -stdlib=libc++ \

LDFLAGS = -L/opt/local/lib -L/usr/lib $(pkg-config --libs --cflags opencv) -lm -ljpeg
LDFLAGS = -L/opt/local/lib -L/usr/lib -I/opt/local/include/opencv -I/opt/local/include -L/opt/local/lib -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lm -ljpeg

.o:
    $(CXX) $(CXXFLAGS) -o $@ -c $^

all: $(OBJS)
    $(CXX) $(CXXFLAGS) $(LDFLAGS) -o out $(OBJS)

clean:
    rm -rf *.o

有一个名为file的命令行工具,我想在您为opencv编译的hello world上使用它时看到它的输出:
file hello\u world
谢谢我学习了一个新命令:)输出是:
vision:Mach-O 64位可执行文件x86\u 64
Makefile中的LDFLAGS是吗?@hipplar非常确定它们是。
CFLAGS = `pkg-config --cflags opencv` 
LDFLAGS = `pkg-config --libs opencv` -lm
CXX = g++

SOURCES = aaa.cpp bbb.cpp
OBJS = $(SOURCES:.cpp=.o)

CXXFLAGS = -I. -I/opt/local/include \
            -std=c++11 -stdlib=libc++ \
            -g3 -Wall -O0
            # -std=c++0x -arch x86_64 -stdlib=libc++ \

LDFLAGS = -L/opt/local/lib -L/usr/lib $(pkg-config --libs --cflags opencv) -lm -ljpeg
LDFLAGS = -L/opt/local/lib -L/usr/lib -I/opt/local/include/opencv -I/opt/local/include -L/opt/local/lib -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -lm -ljpeg

.o:
    $(CXX) $(CXXFLAGS) -o $@ -c $^

all: $(OBJS)
    $(CXX) $(CXXFLAGS) $(LDFLAGS) -o out $(OBJS)

clean:
    rm -rf *.o