У меня есть этот старый C ++ проект, который я компилирую. Это не я написал. Я пытаюсь скомпилировать его для знакомого. Код восходит к началу 1990-х, концу 1980-х годов, хотя некоторые из них все еще были разработаны примерно в 2008 году. Хотя я вижу, что использовалась Visual Studio 2013. Я пытаюсь скомпилировать его в VS 2015. Короче говоря, я получаю сообщение об ошибке, в котором включен « вектор ». В вектор включен "cmath", и здесь возникают ошибки. По-видимому, этот код был успешно скомпилирован в более ранних версиях Visual Studio, то есть в 2013 или 2010 году.
Это большой проект, поэтому его сложно представить полностью, но это верхняя часть исходного файла где включен вектор:
#ifndef EXPRESSAPPLICATION_H
#define EXPRESSAPPLICATION_H
#pragma warning (disable : 4786)
#include <windows.h>
#include <vector>
#include "ObjList.h"
Вот список ошибок:
Код серьезности Описание Состояние подавления строки файла проекта
Ошибка C2062 тип 'double' неожиданный ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 17
Ошибка C2059 синтаксическая ошибка: ')' ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 17
Ошибка C2143 синтаксическая ошибка: отсутствует ' ; ' перед '{' ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 18
Ошибка C2447 '{': отсутствует заголовок функции (старый -стайл формальный список?) ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 18
Ошибка C2062 неожиданный тип 'float' ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 30
Ошибка C2059 синтаксическая ошибка: ')' ExpressOffice C: \ Program Files ( x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 30
Ошибка C2143 синтаксическая ошибка: отсутствует ';' перед '{' ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 31 Ошибка C2447 '{': отсутствует заголовок функции (формальный список в старом стиле?) ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 31
Ошибка C2062 тип 'long double' неожиданный ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 328
Ошибка C2059 синтаксическая ошибка: ')' ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 328
Ошибка C2143 синтаксическая ошибка: отсутствует ';' перед '{' ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 329
Ошибка C2447 '{': отсутствует заголовок функции (старый -стайл формальный список?) ExpressOffice C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include \ cmath 329
Вот строки кода, на которые он жалуется в cmath:
line 17:
_Check_return_ inline double abs(_In_ double _Xx) _NOEXCEPT
{
return (_CSTD fabs(_Xx));
}
line 30:
_Check_return_ inline float abs(_In_ float _Xx) _NOEXCEPT
{
return (_CSTD fabsf(_Xx));
}
line 328:
_Check_return_ inline long double abs(_In_ long double _Xx) _NOEXCEPT
{
return (_CSTD fabsl(_Xx));
}
Похоже, что затронуты только функции abs () в cmath. Никакие другие математические функции не затронуты. Меня озадачивает эта проблема. Спасибо за любую помощь!