我在C程序中使用libjpeg,程序编译时会出现一些错误:
/usr/bin/ld: CMakeFiles/video_capture.dir/main.c.o: in function `setup_jpeg_decompress':
/home/arthurryan/programs/video_capture/main.c:58: undefined reference to `jpeg_std_error'
/usr/bin/ld: /home/arthurryan/programs/video_capture/main.c:59: undefined reference to `jpeg_CreateDecompress'
collect2: error: ld returned 1 exit status
我尝试过一些解决办法,例如:
但什么都没起作用。我确信libjpeg已经安装在我的电脑里了。当我执行
find /usr -iname libjpeg\*so\*
有几个结果:
/usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2
/usr/lib/x86_64-linux-gnu/libjpeg.so
/usr/lib/x86_64-linux-gnu/libjpeg.so.8
是否有其他解决问题的方法?
我使用CLion进行开发,以下是CMakeLists.txt的内容
cmake_minimum_required(VERSION 3.17)
project(video_capture C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_FLAGS -g)
set(CMAKE_C_FLAGS "-L /usr/lib/x86_64-linux-gnu")
set(CMAKE_C_FLAGS "-ljpeg")
set(CMAKE_C_FLAGS "-pthread")
add_executable(video_capture main.c camera/camera.c inc/camera.h inc/common.h camera/logi_c270.c inc/logi_c270.h encoder.c inc/encoder.h converter/jpeg2yuv.c inc/jpeg2yuv.h)
include_directories(./inc)
发布于 2022-07-22 08:01:24
gcc/g++搜索库的方式在一段时间前发生了变化。过去,makefile是否具有:
gcc -o stuff -ljpeg stuff.o
或
gcc -o stuff stuff.o -ljpeg
但现在,这确实很重要。第一个函数不会得到所需的函数。第二个会的。
https://stackoverflow.com/questions/63428257
复制相似问题