大费周章将libosmscout在vs平台上编译成功了,虽然已经有了readme编译手册,但是其依赖的其他开源库较多,一点的差错都不能有。
若将libosmscout移植到QNX,一个新的平台上,发生什么意外都不奇怪了。所以libosmscout里几个工程,只选取最基本的,不依赖其他库的libosmscout工程进行移植。
这里总结下移植过程中遇到的问题:
1. 随时准备调整config.h和CoreFeatures.h文件中的预定义
在linux平台上,这两个文件时由autoconf根据参数和环境生成的。里面是与头文件相关的预定义的宏。不同的环境,其宏定义可能也不同。如
/* Define to 1 if you have the declaration of `log2(double)', and to 0 if you
don't. */
#undef HAVE_DECL_LOG2
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
好在有注释说明,比较好理解。
其中费了一天 的功夫去理解其参数文件configure.ac,对宏定义修改有点帮助,但希望能直接弄明白宏定义的设置与要求的心思白费了。
2. 有关支持SSE, SSE2的部分,若设置编译选项__SSE__, __SSE2__,出现__buildin_ia32_