现有开源代码:Test
该代码所在文件夹位置:不在/usr等系统目录下,假设在d:/Test目录下
Test目录下假设有N个文件夹,比如:文件夹1,2,3,4,5等,每个文件夹下面都有多个头文件和CPP文件,在这个开源项目中,文件间互相引用的方式都是系统文件的引用方式,如:#include <xxx.h>,并不是#include "xxx.h"
好了,,现在我来使用这个开源代码
首先,我新建了一个工程,假设在E盘的T1路径下,然后创建一个T1.cpp文件,如下:
C/C++ code
#include <Test/1/1.h> //引用Test主目录下的子文件夹1下面的1.h
int main(void)
{
return 0;
}
好了,然后我在与该.cpp同目录下写个Makefile,如下:
VPATH = d/Test/
objects = T1.o
test : $(objects)
g++ -g -o T1 $(objects)
.PHONY : clean
clean :
-rm edit $(objects)
然后make
结果提示找不到那个文件。。
我想我肯定是makefile写的有问题,如何把d:/Test这个非系统目录给包含进来????这个makefile到底该怎么写??我找了太多的资料我始终不知道该怎么写,求教
#include <1.h>
int main(void)
{
return 0;
}
然后你的makefile当中,
INCLUDE_PATH += d:\test\1
test : $(objects)
g++ -g -o T1 $(objects) -I$(INCLUDE_PATH)
$(objects): T1.cpp
$(CXX) -I$(INCLUDE_PATH) -c -o $@ $<
vpath 不是为#include 而存在的。
只能在 编译时 加-Ixxpath才可以的,比如2楼的。