Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Visual C++

Войти
Регистрация
Восстановить пароль
 
wmaster575
27 / 27 / 12
Регистрация: 02.02.2015
Сообщений: 122
#1

Глюк компилятора или в чём может быть ошибка? - Visual C++

09.01.2017, 22:06. Просмотров 266. Ответов 2
Метки нет (Все метки)

Скачал исходники obs studio, создал решение под ms vs 2013 с помощью cmake.
Пытаюсь собрать, но выдает ошибки на банальных местах, причём я не могу понять в чём дело.
Вот кусок кода, функция:
C++
1
2
3
4
5
6
7
8
9
10
11
int64_t os_get_file_size(const char *path)
{
    FILE* f = os_fopen(path, "rb");
    if (!f)
        return -1;
 
    int64_t sz = os_fgetsize(f);
    fclose(f);
 
    return sz;
}
При сборке выдает:
error C2275: int64_t: недопустимое использование этого типа в качестве выражения D:\cpp\obs\obs-studio\libobs\util\platform.c
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sz" D:\cpp\obs\obs-studio\libobs\util\platform.c
error C2065: sz: необъявленный идентификатор D:\cpp\obs\obs-studio\libobs\util\platform.c
error C2065: sz: необъявленный идентификатор D:\cpp\obs\obs-studio\libobs\util\platform.c

Если закомментировать оператор if, то есть сделать вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
int64_t os_get_file_size(const char *path)
{
    FILE* f = os_fopen(path, "rb");
//  if (!f)
//      return -1;
 
    int64_t sz = os_fgetsize(f);
    fclose(f);
 
    return sz;
}
То ошибку уже и не выдает. Из-за чего так?

Ещё в пару местах такая же ошибка.

Добавлено через 28 минут
Прикол, если if оградить фигурными скобками, то компилируется без ошибок.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int64_t os_get_file_size(const char *path)
{
    FILE* f = os_fopen(path, "rb");
    if (!f)
    {
        return -1;
    }   
 
    int64_t sz = os_fgetsize(f);
    fclose(f);
 
    return sz;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2017, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Глюк компилятора или в чём может быть ошибка? (Visual C++):

Ошибка компилятора fatal error C1091: ограничение компилятора: длина строки превышает 65535 байт - Visual C++
Компилируя программу вот такой командой: cl /O2 /Oi /GL /EHsc /MD /Gy main.cpp И компилятор выдает вот такую ошибку: ...

Sip всегда выводит начальную позицию 6436, в чем может быть ошибка? - Visual C++
Всем доброго времени суток. У меня к Вам небольшая просьба, помогите решить проблему. Я пытаюсь работать с элементом SpinControl, задаю...

Бинд клавиш. Как быть и на чём варить? - C++
Всем доброго времени суток. Сам не мастак в программинге, а прога нужна позарез. Суть вот в чём, нужно сделать так, чтобы в окне...

Ошибка компилятора - C++
Всем привет) У меня такая вот проблема с компилятором Сначала всё шло хорошо. Потом стала выкидывать ошибку. Пробовал и винду менять,...

Ошибка компилятора? - Visual C++
Пмогите разобраться с MVS 2008. Во время компиляции выдает сообщение: 1>Внедрение манифеста... 1>mt.exe : general error c10100b1:...

Ошибка компилятора C2600 - C++
Здравствуйте. Такая ошибка:"c:\my documets\visual studio 2013\projects\step4\step4\step4.cpp(93): error C2600: CMainWnd::~CMainWnd: нельзя...

2
nd2
2353 / 1943 / 681
Регистрация: 29.01.2016
Сообщений: 6,326
10.01.2017, 01:46 #2
Скорее всего, причина в том, что у тебя Си-компилятор работает. Расширение файла .c, и если, в свойствах проекта, стоит: "Компилировать как: по умолчанию", то будет вызываться компилятор Си.
0
wmaster575
27 / 27 / 12
Регистрация: 02.02.2015
Сообщений: 122
10.01.2017, 11:41  [ТС] #3
nd2, в параметре "Компилировать как" прописано "Компилировать как код C (/TC)", если я поменяю на C++, то компилятор начнет выдавать другие ошибки. Этот код должен собраться на си.

Добавлено через 3 часа 30 минут
nd2, я поставил 5 обновление VS 2013 и всё скомпилировалось, это ошибка компилятора была.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2017, 11:41
Привет! Вот еще темы с ответами:

Что может быть не так? - Visual C++
В функции прорисовки вызываю: CDC MemDC; rez=MemDC.CreateCompatibleDC(&m_memDC); в какой то момент мне начинает возвращаться 0. ...

Ошибка компилятора как исправить - Visual C++
Не силен в VS2010 При компиляции дает странную ошибку. error C4430: отсутствует спецификатор типа - предполагается int. Примечание....

В чём писать, в MFC или CLR? - Visual C++
В CLR всё более или менее понятно, но приложения написанные в CLR не запускаются на компьютерах в котрых не установлена Visual Studio,...

В чём ошибка? - Visual C++
Почему при компиляции проэкта,выпадает ошибка..Не удаётся запусть программу и путь к файлу???


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru