mapguide源码编译
项目一期用到了mapguide源码,由于时间比较紧张就一直使用debug编译。开发过程中,对mapguide源码做了增加,添加了几个文件。后来因为编译一直出错,大佬指导mapguide编译方式有些特殊。很多代码都没有引入对应的头文件,在一个build.cpp的文件中按照一定的顺序直接#include cpp文件(这本身就和一般情况不太一样),在build.cpp文件中添加自己新增的几个文件后,成功顺利编过。
本以为编译问题顺利结束,可是项目维护,需要重新编译release版本,编译不通过的问题再次出现。后来又是大佬指点,说自己增加的文件debug和release配置不一样(从生成中排除)。后来才有些明白,为什么处理build.cpp文件不从生成中排除,其它的.cpp文件都从生成中排出。原来在build.cpp中又直接#incldue xxx.cpp,把其它排除生成的.cpp文件又按照先后顺序给编译了。最后把自己新增加的几个文件的release下从生成中排除选中是,成功编译了。
总结几点吧:
- mapguide中经常出现,代码中引入一个类却没有引入对应的头文件。自己写的qt工程中,没有引入头文件肯定是编译不过的。(当然把.cpp排除生成,说不定也可以生成成功)
- 在上一条的情况下,一定要选中.cpp文件,右键属性,常规,从生成中排除,选择是。
- 非常规操作吧,可以排除生成,然后在一个文件中统一生成。