decNumber库-编译问题

decNumber library - compile issues

本文关键字:问题 编译 decNumber      更新时间:2023-10-16

我在编译decNumber时遇到问题http://speleotrove.com/decimal/,来源在这里http://download.icu-project.org/files/decNumber/decNumber-icu-368.zip(包括需要删除的示例等)

有人成功编译过这个吗?非常感谢您的评论!!

编译器由于以下指令而发出错误:

#if !defined(QUAD)
#error decBasic.c must be included after decCommon.c
#endif

(这是decCommon.c的一小段代码,decBasic.c是另一个源文件)

代码的作者在评论中表示,这两个源文件是共享的。没有相应的.h文件。

我使用的是Windows 7 64位,使用Visual Studio 2010 32位进行编译。

提前感谢您的帮助。

decBasic.c和decCommon.c被#包含在特定实现文件(如decDouble.c)的底部。因此,您不应该编译decBasic.c或decCommon.c,而是将它们视为头文件。

如果您查看包含的MAKE文件,您可以看到编译目标是什么:缺少decBasic和decCommon。

如果您使用的是Visual Studio,则可以将decBasic.c和decCommon.c添加为标头,这样它们就会出现在项目中,但不会被编译。

decNumber的原始形式不处于可编译状态,因为它需要修改一些源代码以包含标准整数类型。QDecimal库通过使用decNumber的略微修改版本来处理此问题。有关详细信息,请参阅QDecimal项目:

http://code.google.com/p/qdecimal/

http://code.google.com/p/qdecimal/source/browse/doc/INSTALL.txt

使用Visual Studio 2010编译时,不要将decBasic.cdecCommmon.c包含到项目中。这些文件仅包括在内,不应单独编译。在我的情况下,我只使用decDouble模块,我的项目设置如下:

  • 头文件
    • decContext.h
    • decDouble.h
    • decDPD.h
    • decnumberlocal.h
    • decQuad.h
  • 源文件
    • decContext.c
    • decDouble.c
    • decQuad.c

另外,文件decBasic.cdecCommon.c位于decQuad.c所在的同一目录中。