首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Makefile编译2个文件不起作用

通过Makefile编译2个文件不起作用
EN

Stack Overflow用户
提问于 2015-01-15 23:00:35
回答 1查看 108关注 0票数 1

我想一次编译两个.cpp文件。gstapp.cpp正在编译,gnew.cpp被忽略。我在看什么?

Makefile:

代码语言:javascript
复制
# generated from pkg-config --cflags gstreamer-0.10
CFLAGS=-pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 

# generated from pkg-config --libs gstreamer-0.10
LDFLAGS=-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -pthread -lgthread-2.0 -pthread -lglib-2.0 -lxml2 -lgstapp-0.10     

CFLAGS+=-I/usr/include/opencv2

# there are more, but not needed form now: -lopencv_calib3d -lopencv_contrib -lopencv_flann -lopencv_obj 
LDFLAGS+=-lstdc++ -lopencv_core -lopencv_features2d -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_video

gstapp: gstapp.o
    gcc $(LDFLAGS) -o $@ $<

gstapp.o: gstapp.cpp
    gcc -c $(CFLAGS) -o $@ $<

gnew: gnew.o
    gcc $(LDFLAGS) -o $@ $<

gnew.o: gnew.cpp
    gcc -c $(CFLAGS) -o $@ $<
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-15 23:04:11

您可能需要一个all规则来触发两者的编译。通过只运行没有参数的make,它将运行遇到的第一个规则(例如,gstapp:),然后退出。

所以在LDFLAGS和gstapp之间

代码语言:javascript
复制
all: gstapp gnew

第一个规则(也称为默认规则)将在运行makemake all时将两个文件都作为依赖项进行编译。

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

https://stackoverflow.com/questions/27974585

复制
相关文章

相似问题

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