- 운영 체제: kylinV10
- opencv 버전: 4.2.0
opencv4.2.0 버전 컴파일 시 `jpeg_default_qtables'에 대한 정의되지 않은 참조 오류 메시지가 나타나 openc 컴파일이 중단되고 컴파일을 계속할 수 없으므로 이 오류를 해결해야 합니다.
해결책
잘못된 이름을 확인하십시오.이름 분석에 따르면 jpeg 타사 라이브러리가 현재 시스템에 설치되지 않았을 가능성이 큽니다.http://www.ijg.org/로 이동하여 최신 소스 패키지 jpegsrc를 다운로드하십시오. v9e.tar.gz, 다음과 같이 순서대로 컴파일 및 설치를 시작합니다.
tar -xzvf jpegsrc.v9e.tar.gz
cd jpeg-9e
./configure
make libdir=/usr/lib64
make libdir=/usr/lib64 install
위의 명령을 실행한 후 명령줄의 최종 표시 출력은 다음과 같습니다.
make[1]: Entering directory '/data3/deepblue/projects/build/jpeg-9e'
/usr/bin/mkdir -p '/usr/lib64'
/bin/sh ./libtool --mode=install /usr/bin/install -c libjpeg.la '/usr/lib64'
libtool: install: /usr/bin/install -c .libs/libjpeg.so.9.5.0 /usr/lib64/libjpeg.so.9.5.0
libtool: install: (cd /usr/lib64 && {
ln -s -f libjpeg.so.9.5.0 libjpeg.so.9 || {
rm -f libjpeg.so.9 && ln -s libjpeg.so.9.5.0 libjpeg.so.9; }; })
libtool: install: (cd /usr/lib64 && {
ln -s -f libjpeg.so.9.5.0 libjpeg.so || {
rm -f libjpeg.so && ln -s libjpeg.so.9.5.0 libjpeg.so; }; })
libtool: install: /usr/bin/install -c .libs/libjpeg.lai /usr/lib64/libjpeg.la
libtool: install: /usr/bin/install -c .libs/libjpeg.a /usr/lib64/libjpeg.a
libtool: install: chmod 644 /usr/lib64/libjpeg.a
libtool: install: ranlib /usr/lib64/libjpeg.a
libtool: finish: PATH="/root/.vscode-server/bin/8dfae7a5cd50421d10cd99cb873990460525a898/bin/remote-cli:/data/home/tdsql/jdk/bin:/usr/local/bin:/data/home/tdsql/jdk/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data/home/tdsql/hadoop/bin:/data/home/tdsql/hadoop/sbin:/usr/local/cuda-11.4/bin:/root/bin:/data/home/tdsql/hadoop/bin:/data/home/tdsql/hadoop/sbin:/usr/local/cuda-11.4/bin:/root/bin:/sbin" ldconfig -n /usr/lib64
ldconfig: /usr/lib64/libLLVM-7.so is not a symbolic link
----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib64
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/mkdir -p '/usr/local/bin'
/bin/sh ./libtool --mode=install /usr/bin/install -c cjpeg djpeg jpegtran rdjpgcom wrjpgcom '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/cjpeg /usr/local/bin/cjpeg
libtool: install: /usr/bin/install -c .libs/djpeg /usr/local/bin/djpeg
libtool: install: /usr/bin/install -c .libs/jpegtran /usr/local/bin/jpegtran
libtool: install: /usr/bin/install -c rdjpgcom /usr/local/bin/rdjpgcom
libtool: install: /usr/bin/install -c wrjpgcom /usr/local/bin/wrjpgcom
/bin/sh /data3/deepblue/projects/build/jpeg-9e/install-sh -d /usr/local/include
/usr/bin/install -c -m 644 jconfig.h /usr/local/include/jconfig.h
/usr/bin/mkdir -p '/usr/local/include'
/usr/bin/install -c -m 644 jerror.h jmorecfg.h jpeglib.h '/usr/local/include'
/usr/bin/mkdir -p '/usr/local/share/man/man1'
/usr/bin/install -c -m 644 cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1 '/usr/local/share/man/man1'
/usr/bin/mkdir -p '/usr/lib64/pkgconfig'
/usr/bin/install -c -m 644 libjpeg.pc '/usr/lib64/pkgconfig'
make[1]: Leaving directory '/data3/deepblue/projects/build/jpeg-9e'
jpeg가 성공적으로 설치되었고 opencv는 계속 컴파일할 수 있음을 의미합니다.