如何在Makefile中配置glib?

发布于 2024-12-10 21:17:42 字数 1880 浏览 0 评论 0原文

我正在使用 Eclipse CDT 开发 C 软件。我想使用 glib,但它总是报告“未解决的包含:”。我已经在我的 ubuntu 上安装了 glib:

carl@Carl:~$ dpkg -l | grep libglib
ii  libglib-perl                          2:1.223-1        
ii  libglib2.0-0                          2.28.6-0ubuntu1      
ii  libglib2.0-bin                        2.28.6-0ubuntu1      
ii  libglib2.0-cil                        2.12.10-1ubuntu1       
ii  libglib2.0-data                       2.28.6-0ubuntu1        
ii  libglib2.0-dev                        2.28.6-0ubuntu1       
ii  libglib2.0-doc                        2.28.6-0ubuntu1       
ii  libglibmm-2.4-1c2a                    2.28.0-1                 

我是 C 语言的新手。 虽然我找到了一些建议:

% gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0`

但我不知道如何通过我的 Makefile 使其工作:

CC=         gcc
CXX=        g++
CFLAGS=     -ggdb -g -Wall -O2
CXXFLAGS=   $(CFLAGS)
DFLAGS=     -DHAVE_PTHREAD #-D_FILE_OFFSET_BITS=64
OBJS=       rand.o
PROG=       peta
INCLUDES=   
LIBS=       -lm -lz -lpthread -Lbwt_gen -lbwtgen
SUBDIRS=    . bwt_gen

.SUFFIXES:.c .o .cc

.c.o:
        $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@
.cc.o:
        $(CXX) -c $(CXXFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@

all:$(PROG)

lib-recur all-recur clean-recur cleanlocal-recur install-recur:
        @target=`echo $@ | sed s/-recur//`; \
        wdir=`pwd`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
            cd $$subdir; \
            $(MAKE) CC="$(CC)" CXX="$(CXX)" DFLAGS="$(DFLAGS)" CFLAGS="$(CFLAGS)" \
                INCLUDES="$(INCLUDES)" $$target || exit 1; \
            cd $$wdir; \
        done;

lib:

peta:lib-recur $(OBJS) main.o
        $(CC) $(CFLAGS) $(DFLAGS) $(OBJS) main.o -o $@ $(LIBS)

cleanlocal:
        rm -f gmon.out *.o a.out $(PROG) *~ *.a

clean:cleanlocal-recur

有人可以帮助我吗?谢谢。

I am using Eclipse CDT to develop a C software. I would like to use glib, but it always reports "Unresolved inclusion: ". I have installed glib on my ubuntu:

carl@Carl:~$ dpkg -l | grep libglib
ii  libglib-perl                          2:1.223-1        
ii  libglib2.0-0                          2.28.6-0ubuntu1      
ii  libglib2.0-bin                        2.28.6-0ubuntu1      
ii  libglib2.0-cil                        2.12.10-1ubuntu1       
ii  libglib2.0-data                       2.28.6-0ubuntu1        
ii  libglib2.0-dev                        2.28.6-0ubuntu1       
ii  libglib2.0-doc                        2.28.6-0ubuntu1       
ii  libglibmm-2.4-1c2a                    2.28.0-1                 

I am a freshman to C. Although I found some suggestions:

% gcc test.c -Wall -o test `pkg-config --cflags --libs glib-2.0`

But I do not know how to make it work through my Makefile:

CC=         gcc
CXX=        g++
CFLAGS=     -ggdb -g -Wall -O2
CXXFLAGS=   $(CFLAGS)
DFLAGS=     -DHAVE_PTHREAD #-D_FILE_OFFSET_BITS=64
OBJS=       rand.o
PROG=       peta
INCLUDES=   
LIBS=       -lm -lz -lpthread -Lbwt_gen -lbwtgen
SUBDIRS=    . bwt_gen

.SUFFIXES:.c .o .cc

.c.o:
        $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) 
lt; -o $@
.cc.o:
        $(CXX) -c $(CXXFLAGS) $(DFLAGS) $(INCLUDES) 
lt; -o $@

all:$(PROG)

lib-recur all-recur clean-recur cleanlocal-recur install-recur:
        @target=`echo $@ | sed s/-recur//`; \
        wdir=`pwd`; \
        list='$(SUBDIRS)'; for subdir in $list; do \
            cd $subdir; \
            $(MAKE) CC="$(CC)" CXX="$(CXX)" DFLAGS="$(DFLAGS)" CFLAGS="$(CFLAGS)" \
                INCLUDES="$(INCLUDES)" $target || exit 1; \
            cd $wdir; \
        done;

lib:

peta:lib-recur $(OBJS) main.o
        $(CC) $(CFLAGS) $(DFLAGS) $(OBJS) main.o -o $@ $(LIBS)

cleanlocal:
        rm -f gmon.out *.o a.out $(PROG) *~ *.a

clean:cleanlocal-recur

Could anybody help me? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

删除→记忆 2024-12-17 21:17:42

将其附加到您的 LIBS 指令的末尾:

$(shell pkg-config --libs glib-2.0)

并将其添加到您的 CXXFLAGS 和 CFLAGS:

$(shell pkg-config --cflags glib-2.0)

这将完成这项工作。

Append this at the end of your LIBS directive:

$(shell pkg-config --libs glib-2.0)

And this to your CXXFLAGS and CFLAGS:

$(shell pkg-config --cflags glib-2.0)

This will do the job.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文