ошибка компиляции cmath при компиляции старого C++ кодирует в VS2010

Я наследовал несколько файлов C++ и сопроводительный make-файл, который я пытаюсь принести в VS2010 как решение. Я создал пустой проект и добавил соответствующий C++ и заголовок (.hpp) файлы для одной из целей make-файла.

Когда я пытаюсь скомпилировать проект, однако, я сразу получаю большое количество C2061 (идентификатор синтаксической ошибки) ошибки, прибывающие из cmath относительно acosf, asinf, atanf, и т.д.

Ошибочная строка в cmath:

#pragma once
#ifndef _CMATH_
#define _CMATH_
#include <yvals.h>

#ifdef _STD_USING
   #undef _STD_USING
     #include <math.h>
   #define _STD_USING

#else /* _STD_USING */
   #include <math.h>
#endif /* _STD_USING */

#if _GLOBAL_USING && !defined(RC_INVOKED)

_STD_BEGIN
using _CSTD acosf; using _CSTD asinf;

Главный блок соответствующего файла C++ (хотя названо как.C):

#include <fstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;

Сопровождаемый основным () функция, которая не вызывает ни одной из аккуратных функций непосредственно. Это должно быть чем-то действительно очевидным, но я пропускаю его. Кто-либо может помочь?

Спасибо!

10
задан Mike O'Malley 29 June 2010 в 14:08
поделиться

2 ответа

Вы уверены, что он компилируется как C ++? Большинство компиляторов компилируют файл .C как C, а файлы .cpp как C ++, поэтому компиляция файла C ++ с помощью C-компилятора, вероятно, не удастся.

Кроме того, этот код смешивает заголовки старого стиля ('c') и заголовки нового стиля ('c ++'). Это должно быть больше похоже на это (однако я сомневаюсь, что это ошибка).

#include <fstream>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

Это все, что я могу видеть по тому, что вы дали. Но в большинстве случаев, когда вы получаете ошибки в файлах библиотеки самого C / C ++, это все еще ваш код, который где-то не прав, например, вы забыли; после оператора класса в файле заголовка.

13
ответ дан 3 December 2019 в 21:19
поделиться

Вероятно, он НЕ компилируется как код C ++ - как вы предполагаете. Я собираюсь попросить вас щелкнуть правой кнопкой мыши файл в vs2010, щелкнуть свойства, перейти в «Свойства конфигурации - C / C ++ - Дополнительно» и убедиться, что для параметра «Скомпилировать как» установлено значение «Скомпилировать как код C ++ (/ TP). '... Если нет, измените его на это, а затем перекомпилируйте ... вам, возможно, придется воссоздать ваши предварительно скомпилированные заголовки, но я собираюсь исправить вашу' проблему ';)

4
ответ дан 3 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: