首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于简单应用程序的Makefile

用于简单应用程序的Makefile
EN

Stack Overflow用户
提问于 2010-12-02 21:23:13
回答 1查看 1.6K关注 0票数 0

我有一个app.c文件,它使用两个库GStreamer和libXml2。为了编译应用程序,我在终端上输入以下内容

代码语言:javascript
复制
gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) app.c -o app -I/usr/include/libxml2 -lxml2

当我尝试使用如下内容创建Makefile时:

代码语言:javascript
复制
all:
        gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) app.c -o app -I/usr/include/libxml2 -lxml2
run:
        ./app
clean:
        rm app

在运行make命令时,我得到了预期的错误。的意义是什么?

代码语言:javascript
复制
$(pkg-config --cflags --libs gstreamer-0.10)

在回显上面的内容时,我得到了一些文件,当包含在Makefile中时,这些文件会给出正确的输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-02 21:29:47

pkg-config --cflags libraryX输出libraryX的头文件的路径。如果不这样做,编译器就不知道在哪里查找头文件,编译将失败。

类似地,pkg-config --libs libraryX输出实际编译的libraryX库文件的路径。否则,链接器不知道在哪里查找库文件,链接将失败。

pkg-config --cflags --libs libraryX只是将我上面描述的内容组合在一起。由于使用gcc进行编译和链接,因此只需将这些参数一起传递给gcc即可。

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

https://stackoverflow.com/questions/4335451

复制
相关文章

相似问题

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