1

我在编译 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 位编译。

预先感谢您的帮助。

4

3 回答 3

2

decBasic.c 和 decCommon.c #include 在具体实现文件(如 decDouble.c)的底部。所以 - 你不应该编译 decBasic.c 或 decCommon.c,而是把它们当作头文件对待。

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

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

于 2012-04-15T23:11:20.433 回答
0

decNumber 在其原始形式中不处于可编译状态,因为它需要对源代码进行一些修改以包含标准整数类型。QDecimal 库通过使用稍微修改的 decNumber 版本来处理这个问题。详情请参阅 QDecimal 项目:

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

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

于 2012-03-14T05:50:15.437 回答
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位于同一目录中。

于 2012-03-21T13:36:57.093 回答