gpt4 book ai didi

c++ - 在 linux 上编译 cddplus

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:24 25 4
gpt4 key购买 nike

我希望这不是编程问答论坛的题外话,但我在编译这个程序时遇到了麻烦,这对我来说非常重要。

http://www.inf.ethz.ch/personal/fukudak/cdd_home/从那里最新的 cdd+-077a.tar.gz...

一个简单的make all(就像README建议的那样)产生:

g++ -O3 -I -I/usr/local/include -I. -DGMP -DRATIONAL -c -o cdd_r.o cdd.C
In file included from ./Rational.h:19:0,
from cddtype.h:16,
from cdd.C:38:
./Integer.h:779:28: Fehler: »INT_MAX« wurde in diesem Gültigkeitsbereich nicht definiert
./Integer.h:780:30: Fehler: »INT_MAX« wurde in diesem Gültigkeitsbereich nicht definiert
In file included from cddtype.h:16:0,
from cdd.C:38:
./Rational.h: In Funktion »std::basic_ostream<char, _Traits>& operator<<(std::basic_ostream<char, _Traits>&, const Rational&)«:
./Rational.h:1181:35: Fehler: es gibt keine Argumente für »strlen«, die von einem Templateparameter abhängen, weshalb eine Deklaration von »strlen« verfügbar sein muss [- fpermissive]
./Rational.h:1181:35: Anmerkung: (mit »-fpermissive« wird G++ den Code akzeptieren, aber die Verwendung eines nicht deklarierten Namens ist veraltet)
cdd.C: In Funktion »void DDEnumerate(std::ostream&, std::ostream&)«:
cdd.C:197:49: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:204:55: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:211:49: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:219:55: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C: In Funktion »void DDRowDecomposition(std::ostream&, std::ostream&)«:
cdd.C:260:53: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:301:47: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:308:53: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:315:47: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C: In Funktion »void PreProjection(std::ostream&, std::ostream&)«:
cdd.C:356:69: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:422:49: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:429:55: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:436:49: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C: In Funktion »void PostAnalysisMain(std::ifstream&, std::ostream&)«:
cdd.C:522:49: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:529:55: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:536:49: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:544:55: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C: In Funktion »int main(int, char**)«:
cdd.C:794:39: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:797:56: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
cdd.C:806:45: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
make: *** [cdd_r.o] Fehler 1

这是什么意思?文件本身是否已损坏(我非常怀疑)是我的设置错误(我正在运行 Ubuntu 13.04)还是还有其他我不知道的事情?

如果有人能指出正确的方向,我将不胜感激......

最佳答案

我已经解决了这个问题如下:

首先:在Integer.h的开头添加如下内容:

#define __STDC_LIMIT_MACROS
#include <stdint.h>`

第二个:

INT_MAX 替换为 INT32_MAX(这是第 779 和 780 行),因为在 stdint.h (usr/include) 中,只需定义 INT32_MAX 没有 INT_MAX

以上改动可能正好解决了第一个问题,即关于INT_MAX的问题。

在此之后,你会遇到strlenmemcopy的问题,那么你可以通过在相关文件中添加“string.h”来解决这个问题,也许是Rational .h 和其他的,我忘记了。

关于c++ - 在 linux 上编译 cddplus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com