Получение простого Makefile для работы - PullRequest
2 голосов
/ 30 мая 2011

Так что у меня возникают проблемы с работой даже простого Makefile.Вот что у меня есть:

proj : driver.o
    icc -g -O3 -openmp driver.o -o proj
driver.o : driver.c driver.h
    icc -g -O3 -openmp driver.c 

Я чувствую, что все довольно просто.Proj зависит только от driver.o, который, в свою очередь, зависит от driver.c и driver.h.При запуске компилятор завершается с ошибкой «невозможно открыть исходный файл« driver.h »» при включении в файл driver.c.Чего мне не хватает?

Ответы [ 3 ]

3 голосов
/ 30 мая 2011

Вы должны дать icc опцию -I., чтобы он искал включаемые файлы в текущем каталоге.

icc -I. -c -g -O3 -openmp driver.c 

(я позволил себе также добавить флаг -c для предотвращения ссылок.)

2 голосов
/ 30 мая 2011

Предполагая, что вы запускаете make из каталога, в котором находятся все исходные файлы и заголовки, убедитесь, что вы используете кавычки в директиве include:

#include "driver.h"

... вместо:

#include <driver.h>

Последний будет искать системный путь включения (и вам нужно будет добавить текущий каталог к ​​этому пути, как предложил Ларсман).

1 голос
/ 30 мая 2011

Это в правильной папке?Кроме того, при компиляции вам, возможно, придется добавить -c в командную строку, чтобы скомпилировать driver.o, вместо того, чтобы пытаться создать полностью исполняемый код (используется только для gcc, поэтому это может не потребоваться).

Кроме этого (и возможного добавления упомянутого ларсмана -I, я не вижу никакой другой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...