gpt4 book ai didi

c++ - 升级到 OS X Mavericks 后架构 x86_64 的 OpenCV undefined symbol

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:04 25 4
gpt4 key购买 nike

我有一个运行良好的 opencv 项目。今天我已经将我的 OS X lion 升级到 Maverick,我收到以下 imwrite 函数的错误:

Undefined symbols for architecture x86_64:
"cv::imwrite(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, cv::_InputArray const&, std::__1::vector<int, std::__1::allocator<int> > const&)", referenced from:
_main in Hello.o
ld: symbol(s) not found for architecture x86_64

我不得不说其他 opencv 函数仍在工作(例如 cvWaitKey()、cvShowImage 等),但 imwrite 和 imread 不再工作。

您可以在下面看到我使用的 makefile:

CXX = g++
CXXFLAGS = -O2 -g -Wall -fmessage-length=0
CPPFLAGS = -I/usr/local/Cellar/opencv/2.4.6.1/include

OBJS = Hello.o

LDFLAGS = -L/usr/local/Cellar/opencv/2.4.6.1/lib
LDLIBS = -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video \
-lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect \
-lopencv_contrib -lopencv_legacy -lopencv_gpu

TARGET = Hello

.PHONY: all
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) $(LDFLAGS) $^ $(LDLIBS) -o $@

.PHONY: clean
clean:
rm -f $(OBJS) $(TARGET)

解决方案:我已经通过安装 opencv 2.4.3 解决了这个问题。您可能会在我添加的答案中找到更多详细信息。

最佳答案

我在使用 g++ 编译时通过使用 -mmacosx-version-min=10.8 选项解决了这个问题。这可能不是一个永久的解决方案,但至少我的代码可以再次编译。

关于c++ - 升级到 OS X Mavericks 后架构 x86_64 的 OpenCV undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com