2016-05-31 111 views
0

我有兩個makefiles,但是我想理想的是在Ubuntu中編譯一個程序(test.cpp)的效果。如何將兩個獨立的makefile合併爲一個程序?

首先(用於巴斯勒Pylon5相機SDK):

# Makefile for Basler pylon sample program 
.PHONY: all clean 

# The program to build 
NAME  := test 

# Installation directories for pylon 
PYLON_ROOT ?= /opt/pylon5 

# Build tools and flags 
LD   := $(CXX) 
CPPFLAGS := $(shell $(PYLON_ROOT)/bin/pylon-config --cflags) 
CXXFLAGS := #e.g., CXXFLAGS=-g -O0 for debugging 
LDFLAGS := $(shell $(PYLON_ROOT)/bin/pylon-config --libs-rpath) 
LDLIBS  := $(shell $(PYLON_ROOT)/bin/pylon-config --libs) 

# Rules for building 
all: $(NAME) 

$(NAME): $(NAME).o 
    $(LD) $(LDFLAGS) -o [email protected] $^ $(LDLIBS) 

$(NAME).o: $(NAME).cpp 
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o [email protected] $< 

clean: 
    $(RM) $(NAME).o $(NAME) 

二(用於OpenCV的):

# The program to build 
NAME  := test 

CFLAGS = `pkg-config --cflags opencv` 
LIBS = `pkg-config --libs opencv` 

$(NAME) : $(NAME).cpp 
    g++ -o [email protected] $< $(CFLAGS) $(LIBS) 

這可能嗎?我對製作文件非常陌生,我只是想用相機捕捉和處理一些圖像。任何幫助表示讚賞。謝謝。

+0

這兩個makefiles做*兩件不同的事*。我想你可以一個接一個地運行它們('make -f makefileName1; make -f makefileName2'),但是沒有魔法命令告訴計算機「如果我知道這些事情實際上做了什麼,我會做什麼」。 – Beta

回答

0

這可能嗎?

沒有通用的解決方案。在另一方面,第二Makefile文件是這兩條線純包裝:

CFLAGS = `pkg-config --cflags opencv` 
LIBS = `pkg-config --libs opencv` 

所有你需要做的,就是兩行整合到第一個Makefile文件。例如,類似於pylon-config你已經在那裏,加上之前all:

CXXFLAGS += $(shell pkg-config --cflags opencv) 
LDLIBS  += $(shell pkg-config --libs opencv) 

這應該照顧它。

+0

工作就像一個魅力。謝謝。 – macko656

+0

@ macko656,不要忘記接受答案。 – Dummy00001

相關問題