decNumber库 - 编译问题

时间:2012-02-18 00:32:56

标签: c++ decimal-point

我在编写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位,使用32位Visual Studio 2010进行编译。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

decBasic.c和decCommon.c在特定实现文件的BOTTOM中是#included(例如decDouble.c)。所以 - 你不应该编译decBasic.c或decCommon.c,而是将它们视为头文件。

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

使用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所在的同一目录中。