可以将XMLmakefile 多文件编译译到DLL文件中吗

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
 
 
 
 

函数名称:获取匹配模式文件名函数-wildcard函数功能:列出当前目录下所有符合模式“PATTERN”格式的文件名

返回值:空格分割的、存在当前目录下的所有符合模式“PATTERN”的文件名。函数说明:“PATTERN”使用shell可识别的通配符包括“?”(单字符)、“*”(多字符)等。示例:

函数名称:模式替换函数—patsubst

函数功能:搜索“TEXT”中以空格分开的单词,将符合模式“PATTERN”替换为“REPLACEMENT”参数“PATTERN”中可以使用模式通配符“%”  来代表一个单词中的若干字符。如果参数“REPLACEMENT”Φ也包含一个“%”那么“REPLACEMENT”中的“%”将是“PATTERN”中的那个“%”所代表的字符串。

在“PATTERN”和“REPLACEMENT”中只有第一个“%”被作为模式字符来处理,之后出现的不再作模式字符(作为一个字符)在参数中如果需要将第一个出现的“%”作为字符本身而不作为模式字符时,可使用反斜杠“\”进行转义处理(转义处理的机制和使用静态模式的转义一致)

 返回值:替换后的新字符串 函数说明:参数“TEXT”单词之间的多个空格茬处理时被合并为一个空格,并忽略前导和结尾空格 示例:

8.all:bts //指定执行一个由伪目标定义的若干条命令或者一个空目标文件all 作为Makefile的顶层目標,一般此目标作为默认的终极目标

//根据实际的编译器选择变量-o $@:生成目标文件的完整名称

所有的.d文件依赖于同名的.c文件。.d文件里包含叻.c所依赖的头文件信息

将一个目标声明为伪目标的方法是将它作为特殊目标.PHONY”的依赖.PHONY : clean  这样目标“clean”就被声明为一个伪目标,无论在当前目录下是否存在“clean”这个文件我们输入“make clean”之后。“rm”命令都会被执行而且,当一个目标被声明为伪目标后make在执行此规则时不会去試图去查找隐含规则来创建它。这样也提高了make的执行效率同时也不用担心由于目标和文件名重名而使我们的期望失败。在书写伪目标规則时首先需要声明目标是一个伪目标,之后才是伪目标的规则定义目标“clean”的完整书写格式应该如下: .PHONY: clean 

此规则描述了一个.o文件如何由對应的.c文件创建。

首先看编译.c文件到.o文件的隐含模式规则: 

//自动生成每一个.c文件对应的.d文件.此规则的含义是:所有的.d文件依赖于同名的.c文件



然后在tinyxml.h文件中添加了一个宏用来導出所有的类:


最后在所有的类前面都加上TIXML_DLL_API宏再次编译工程.但是用dependcy查看的时候,还是无法看到导出的类

希望大家帮忙看看,这是为什么呢?有什么办法可以将tinyxml 编译为动态链接库呢?

我要回帖

更多关于 makefile 多文件编译 的文章

 

随机推荐