创建包含仅标头库的Makefile 这是我的第一个C++程序,也是我第一次创建一个MaX文件,所以我对它非常陌生。
我的主文件raytracer.cpp包含如下glm库:创建包含仅标头库的Makefile 这是我的第一个C++程序,也是我第一次创建一个MaX文件,所以我对它非常陌生。,c++,compilation,makefile,C++,Compilation,Makefile,我的主文件raytracer.cpp包含如下glm库: #include "glm/glm.hpp" raytracer.cpp和glm目录位于同一目录中 如何为此项目创建makefile 是一个只有标题的库。那么我必须编译glm目录中的所有文件吗?或者只指定glm.hpp?如果且仅当所有代码都在标题中,且相应的源中未定义任何内容,则不必在Makefile中指定任何内容,只需指定raytracer.cpp的规则。标题代码将自动插入包含语句的位置。如果需要包含其他对象或共享对象(如.so.a等中
#include "glm/glm.hpp"
raytracer.cpp和glm目录位于同一目录中
如何为此项目创建makefile
是一个只有标题的库。那么我必须编译glm目录中的所有文件吗?或者只指定glm.hpp?如果且仅当所有代码都在标题中,且相应的源中未定义任何内容,则不必在Makefile中指定任何内容,只需指定raytracer.cpp的规则。标题代码将自动插入包含语句的位置。如果需要包含其他对象或共享对象(如.so.a等中的库),则只需指定它)
有关如何创建简单makefiles的更多信息,请参见此处:如果您有一个作为应用程序的
raytracer.cpp
文件和一些(本地)头文件,则您需要的唯一makefile内容(仅在头文件更改时重建二进制文件)为
就这样
只需创建Makefile
并运行makeraytracer
。(您也可以在不创建Makefile
的情况下运行它,但如果只有头更改,make将不知道如何重新生成二进制文件。)
如果需要任何特殊标志/等,可以使用内置的make变量设置这些标志。例如CFLAGS
,LDFLAGS
,LDLIBS
,CPPFLAGS
,等等
有关列表和更多信息,请参阅手册中的
midor链接到的票据上的公认答案也包含许多有用的信息
raytracer: raytracer.hpp glm/glm.hpp