在windows下使用gmp的动态库,要注意到:
在gmp.info-1中有一段说明:
MINGW uses the C runtime library `msvcrt.dll' for I/O, so
applications wanting to use the GMP I/O routines must be compiled
with `cl /MD' to do the same. If one of the other C runtime
library choices provided by MS C is desired then the suggestion is
to use the GMP string functions and confine I/O to the application.
所以在编译的时候加一句/MD 即可(默认使用msvcrt.dll作为运行库),当然这对于vc有效。
启用 /MD 时VC6,VS2008,vs2010 分别对应msvcrt.dll、 msvcr80.dll 、MSVCR100.dll。
所以经常看到用vc6.0以上版本的开发软件(涉及运行库),会顺便捎上***.dll 库。
涉及到FILE文件操作时,使用vc6加上/MD会运行很顺利,如果是vs系列进行调用,最好不要用FILE相关的gmp函数,崩溃难免。
可以做个替换:
对于mpz_out_st