Skip to content

Undefined symbols for architecture x86_64: "_jpeg_default_qtables" #18541

@neilyoung

Description

@neilyoung
System information (version)
  • OpenCV => 3.4.11
  • Operating System / Platform => macOS Catalina 10.15.7
  • Compiler =>
Detailed description

I recently have updated my mac to 10.15.7. I also made a brew update.

I'm able to compile and run OpenCV 3.4.1 from source. At runtime it crashes in a function related to JPEG compression

C  [libopencv_imgcodecs.3.4.1.dylib+0x3fd7a]  jpeg_CreateCompress+0x2a
C  [libopencv_imgcodecs.3.4.1.dylib+0x1a5cb]  cv::JpegEncoder::write(cv::Mat const&, std::__1::vector<int, std::__1::allocator<int> > const&)+0xdb
C  [libopencv_imgcodecs.3.4.1.dylib+0x8dd0]   cv::imencode(cv::String const&, cv::_InputArray const&,  std::__1::vector<unsigned char, std::__1::allocator<unsigned  char> >&, std::__1::vector<int,  std::__1::allocator<int> > const&)+0x5d0

I was downloading 3.4.11 sources and tried the compilation. It fails, again somewhere in the near of JPEG:

[ 50%] Linking CXX shared library ../../lib/libopencv_imgcodecs.dylib
Undefined symbols for architecture x86_64:
  "_jpeg_default_qtables", referenced from:
      cv::JpegEncoder::write(cv::Mat const&, std::__1::vector<int, std::__1::allocator<int> > const&) in grfmt_jpeg.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/libopencv_imgcodecs.3.4.11.dylib] Error 1
make[1]: *** [modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all] Error 2
make: *** [all] Error 2

I'm also no longer able to read JPEG files from disk with a simple C++ sample app (OpenCV 3.4.1)

Is there any chance to approach this issue? I suppose it is something in the environment, which is no longer compatible.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions