linux – 具有相对路径的Makefile?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 具有相对路径的Makefile?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1826字,纯文字阅读大概需要3分钟。
内容图文
![linux – 具有相对路径的Makefile?](/upload/InfoBanner/zyjiaocheng/967/963da0dd504a44acb1d2406fce160054.jpg)
我的Gentoo Linux上的Makefiles有问题.
这是我的文件夹层次结构:
Development
-> GLTools
-> include
-> src
->Triangle
->triangle.cpp
->Makefile
和我的Makefile:
MAIN = triangle
SRCPATH = ./
SHAREDPATH = ../GLTools/src/
SHAREDINCPATH = ../GLTools/include/
LIBDIRS = -L/usr/local/lib
INCDIRS = -I/usr/include -I/usr/local/include -I/usr/include/GL \
-I$(SHAREDINCPATH) -I$(SHAREDINCPATH)GL
CC = g++
CFLAGS = $(COMPILERFLAGS) -g $(INCDIRS)
LIBS = -lglut -lGL -lGLU -lm
prog : $(MAIN)
$(MAIN).o : $(SRCPATH)$(MAIN).cpp
glew.o : $(SHAREDPATH)glew.c
GLTools.o : $(SHAREDPATH)GLTools.cpp
GLBatch.o : $(SHAREDPATH)GLBatch.cpp
GLTriangleBatch.o : $(SHAREDPATH)GLTriangleBatch.cpp
GLShaderManager.o : $(SHAREDPATH)GLShaderManager.cpp
math3d.o : $(SHAREDPATH)math3d.cpp
$(MAIN) : $(MAIN).o glew.o
$(CC) $(CFLAGS) -o $(SRCPATH)$(MAIN) $(LIBDIRS) $(SRCPATH)$(MAIN).cpp $(SHAREDPATH)glew.c $(SHAREDPATH)GLTools.cpp $(SHAREDPATH)GLBatch.cpp\
$(SHAREDPATH)GLTriangleBatch.cpp $(SHAREDPATH)GLShaderManager.cpp $(SHAREDPATH)math3d.cpp $(LIBS)
clean:
rm -f *.o
我的问题是得到以下错误:
demonking@Master ~/Development/Triangle $make
g++ -c -o triangle.o triangle.cpp
triangle.cpp:4:50: error: GLTools.h: No such file or directory
triangle.cpp:5:56: error: GLShaderManager.h: No such file or directory
但是当我将我的Makefile复制到文件夹Development(一个文件夹上的一个级别)并编辑我的路径时,它会编译而没有任何错误.
当我的triangle.cpp和Makefile在一个文件夹中并尝试访问父文件夹中的GLTools时,为什么会出现错误?
解决方法:
default rule for compiling c++使用CXXFLAGS而不是CFLAGS,您没有设置它,因此它不包括INCDIRS.
加
CXXFLAGS = $(COMPILERFLAGS) -g $(INCDIRS)
然后再试一次.
你自己发现这种方式的方法是阅读make的输出.注意您展示的输出中的第一行:
g++ -c -o triangle.o triangle.cpp
没有包含标志.没有-g.你没有把所有麻烦设置好的东西.
内容总结
以上是互联网集市为您收集整理的linux – 具有相对路径的Makefile?全部内容,希望文章能够帮你解决linux – 具有相对路径的Makefile?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。