使预处理器定义具有文件敏感性
我写了一个make文件.
在make文件中我使用了一个变量,比如EXTRAFLAGS,看起来像这样. EXTRAFLAGS += -D _MSC_VER EXTRAFLAGS += -D BINARYINPUT EXTRAFLAGS += -D ENABLEVERSION2D2 进一步, CFLAGS = -Werror -Wall -I $(INC) $(EXTRAFLAGS) 和 mingw32-gcc $(CFLAGS) -o nameofexe OBJ's 我已经使用这个makefile解决了任何问题.但是当我禁用预处理程序定义时,通过在EXTRAFLAGS中的一个语句之前引入“#”,并且我重新制作它,我的目标是最新的.我无法将预处理器定义引入敏感列表. 我正在使用的临时工作是,介绍一个虚假目标清理并删除所有目标文件并重新编译每件事.但这是浪费时间.我怎样才能更好地管理当前的情况? 解决方法
Make是一个工具,可以在项目中的某个文件发生更改时编译项目.
例如.当您更改.h文件时,它会识别更改并重建依赖于它的所有文件,然后重建所有依赖于新版本的文件,… 但是当您更改编译器标志和/或makefile中的定义时,项目输入文件不会更改,因此项目不会重建. 有三种方法可以实现您的需求:首先在更改makefile后手动清理make.其次要在makefile中包含makefile本身(并在更改时发出make clean).最后将定义移动到某个项目特定的.h文件中. 通常只有“自己在文件中”的解决方案是唯一一个避免构建所有新内容的解决方案,因为其他人不知道哪些源文件实际上引用了已更改的定义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |