2014-11-28 4 views
0
(/)-----------------------+------------+ 
    |      |   | 
    |      |   | 
    (task#1)--------+   (data)  (images) 
    |   |   |   | 
(gnuplot) Makefile  input.dat output.png 
    |      .   ^
plotting.gpi<....input....<....   . 
    .          . 
    .........>.......output........>....... 

Согласно моей диаграмме, мой вопрос в том, как написать Makefile для работы с gnuplot в этом случае?Как использовать Makefile с gnuplot?

Детализация:

У меня есть plotting.gpi (Gnuplot скрипт), который считывают данные из input.dat и генерировать вывод output.png файла. Чтобы выполнить скрипт, просто введите gnuplot path/to/plotting.gpi, где path/to/file зависит от того, где вы выполняете команду gnuplot, если внутри gnuplot папка. всего gnuplot plotting.gpi достаточно.

Что я пробовал?

Я попытался написать очень простой Makefile, но, похоже, мое понимание не достаточно хорошее. у моего Makefile была проблема с файловым путем, а иногда код в Makefile не выполнял некоторые строки кода.

ответ

3

Вы должны создать файловую структуру, как

. 
├── data 
│   └── input.dat 
├── images 
│   └── output.png 
├── Makefile 
└── task1 
    ├── gnuplot 
    │   └── ploting.gpi 
    └── Makefile 

Вы можете ввести make либо в корневом каталоге или в TASK1 каталоге.

Файлы имеют следующий текст

Makefile

all : 
       make all -C task1 

clean: 
       make clean -C task1 

TASK1/Makefile

IMAGES=../images/output.png 

all : $(IMAGES) 

clean: 
       rm $(IMAGES) 

../images/output.png : gnuplot/ploting.gpi ../data/input.dat 
       gnuplot gnuplot/ploting.gpi 

ploting.gpi

set term pngcairo 
set output '../images/output.png' 
plot '../data/input.dat' using 1:2 with lp 
set term x11 

input.dat

1 1 
2 2 
3 0 
4 2 
5 3 

output.png является enter image description here

+0

К сожалению @ctheo, я думаю, что есть какая-то ошибка. 'Makefile' должен находиться в папке' task # 1'. – fronthem

+0

@ terces907 Я редактирую ответ. Пожалуйста, проверь это. – ztik