[英]Linking a jpeglib to in makefile
嗨,我正在尝试在我的代码中使用jpeglib
,但我无法将它与我的Makefile
./configure
起来它在Makefile
中,我不知道Makefile
是怎么回事
CFLAGS+= -Wall -Werror -fPIE -std=gnu99 -g
LDFLAGS= -pthread
HW=prgsem
BINARIES=prgsem
#LDFLAGS += -L/usr/local/lib -ljpeglib
#CXXFLAGS += -I/usr/local/include
CFLAGS+=$(shell sdl2-config --cflags)
LDFLAGS+=$(shell sdl2-config --libs) -lSDL2_image
all: ${BINARIES}
OBJS=${patsubst %.c,%.o,${wildcard *.c}}
prgsem: ${OBJS}
${CC} ${OBJS} ${CXXFLAGS} ${LDFLAGS} -o $@
${OBJS}: %.o: %.c
${CC} -c ${CFLAGS} $< -o $@
clean:
rm -f ${BINARIES} ${OBJS}
评论的东西是我尝试过的,但没有奏效。 我还尝试更改#include
本身。 试过#include "jpeglib.h"
也#include <jpeglib.h>
没有任何效果。
编辑:添加了 make compile 错误信息
cc xwin_sdl.o event_queue.o prg_io_nonblock.o gui.o main.o prgsem.o messages.o keyboard.o computation.o utils.o -pthread -L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags -lSDL2 -lSDL2_image -o prgsem
/usr/bin/ld: gui.o: in function `save_img':
/home/peter/Cprog/bab36prga-sem/gui.c:67: undefined reference to `jpeg_std_error'
/usr/bin/ld: /home/peter/Cprog/bab36prga-sem/gui.c:69: undefined reference to `jpeg_CreateCompress'
/usr/bin/ld: /home/peter/Cprog/bab36prga-sem/gui.c:74: undefined reference to `jpeg_stdio_dest'
/usr/bin/ld: /home/peter/Cprog/bab36prga-sem/gui.c:81: undefined reference to `jpeg_set_defaults'
/usr/bin/ld: /home/peter/Cprog/bab36prga-sem/gui.c:83: undefined reference to `jpeg_start_compress'
/usr/bin/ld: /home/peter/Cprog/bab36prga-sem/gui.c:90: undefined reference to `jpeg_write_scanlines'
/usr/bin/ld: /home/peter/Cprog/bab36prga-sem/gui.c:93: undefined reference to `jpeg_finish_compress'
/usr/bin/ld: /home/peter/Cprog/bab36prga-sem/gui.c:97: undefined reference to `jpeg_destroy_compress'
collect2: error: ld returned 1 exit status
make: *** [Makefile:19: prgsem] Error 1
感谢您的任何回答。
您的问题不在程序的编译阶段,因此在这种情况下更改#include
等将无济于事。
您的问题出在链接阶段,这意味着您尚未将库添加到链接行。 例如,如果库名为libjpeg.a
或libjpeg.so
,则需要将-ljpeg
添加到链接行。 最简单的方法是将其添加到LDFLAGS
的末尾:
LDFLAGS+=$(shell sdl2-config --libs) -lSDL2_image -ljpeg
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.