首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C程序链接错误:对`jpeg_std_error‘的未定义引用

C程序链接错误:对`jpeg_std_error‘的未定义引用
EN

Stack Overflow用户
提问于 2020-08-15 16:20:02
回答 1查看 590关注 0票数 0

我在C程序中使用libjpeg,程序编译时会出现一些错误:

代码语言:javascript
运行
复制
/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

我尝试过一些解决办法,例如:

  1. add -ljpeg
  2. 添加-l:

但什么都没起作用。我确信libjpeg已经安装在我的电脑里了。当我执行

代码语言:javascript
运行
复制
find /usr -iname libjpeg\*so\*

有几个结果:

代码语言:javascript
运行
复制
/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的内容

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2022-07-22 08:01:24

gcc/g++搜索库的方式在一段时间前发生了变化。过去,makefile是否具有:

代码语言:javascript
运行
复制
gcc -o stuff -ljpeg stuff.o

代码语言:javascript
运行
复制
gcc -o stuff stuff.o -ljpeg

但现在,这确实很重要。第一个函数不会得到所需的函数。第二个会的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63428257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档