gpt4 book ai didi

c++ - Visual Studio 中的意外错误包括文件

转载 作者:可可西里 更新时间:2023-11-01 12:00:19 26 4
gpt4 key购买 nike

我使用 f2c 转换器 ( f2c ) 将一些遗留 Fortran 代码转换为 C,并且我在 Windows 7(64 位)上使用 Cmake 创建了一个 Visual Studio 10 解决方案。我还必须将我的 C++ 程序(test.cpp,包含我的主要功能)与 f2c 库(使用 nmake 在我的系统上构建)链接起来。尽管我广泛使用 CMake 和 Visual Studio,但在编译程序后,我现在收到了一些与 Visual Studio 附带的头文件相关的神秘错误:

2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(141): error C2059: syntax error : '('
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(141): error C2059: syntax error : '-'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(141): error C2059: syntax error : ')'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2027: use of undefined type '_Ty'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2226: syntax error : unexpected type 'std::complex<_Other>'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2988: unrecognizable template declaration/definition
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2059: syntax error : '-'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2065: '_Ty' : undeclared identifier
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(250): error C2059: syntax error : ')'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(263): error C2065: '_Ty' : undeclared identifier
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(263): error C2065: '_Ty' : undeclared identifier
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(264): error C2143: syntax error : missing ';' before '{'
2>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xcomplex(264): error C2447: '{' : missing function header (old-style formal list?)

从头开始创建 Visual Studio 解决方案文件似乎也不是很好,而且我仍然收到相同的错误。我可以做些什么来追踪这些错误的问题?显然我包含或编写的文件有问题,但它可能是什么?错误不会立即指向代码的特定部分,因此调试具有挑战性。

这是指向 f2c.h 头文件 (f2c.h) 的链接。我已经添加了

#ifdef __cplusplus
extern "C" {
#endif

到顶部和

#ifdef __cplusplus
}
#endi

到这个头文件的底部,因为我的 test.cpp 是一个 C++ 程序。

最佳答案

问题似乎在于 f2c.h 定义了一些宏,包括一些用于数学函数的宏,例如 abs。当在标准 header 中遇到相同的标识符时,这些宏会导致问题。

出于这个原因,我建议您始终将 f2c.h 作为文件中的最后一个 header 包含在内(或 #undef 在包含其他文件之前包含冲突的宏)。

关于c++ - Visual Studio 中的意外错误包括文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10679341/

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