使简单的Makefile起作用

问题描述

| 因此,我什至无法使用一个简单的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.c文件中的“ include”中包含“无法打开源文件” driver.h \” \。我想念什么?     

解决方法

        假设您从所有源文件和头文件所在的目录中运行“ 1”,请确保在include指令中使用引号:
#include \"driver.h\"
...而不是:
#include <driver.h>
后者将搜索系统包含路径(并且您必须按照larsmans的建议将当前目录添加到该路径)。     ,        您应该给
icc
一个
-I.
选项,以使其在当前目录中查找包含文件。
icc -I. -c -g -O3 -openmp driver.c 
(我也随意添加了
-c
标志以防止链接。)     ,        它在正确的文件夹中吗?同样,您的编译方式可能必须在命令行中添加ѭ7才能编译
driver.o
,而不是尝试创建完整的可执行文件(仅用于gcc,因此可能不需要)。 除此之外(还有提到的可能会加上
-I
标记的拉尔斯曼号,我看不到任何其他问题。