Форум программистов, компьютерный форум, киберфорум
C/C++: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 30

Не компилируется библиотека Visual Studio 2017

29.06.2018, 20:45. Показов 3212. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте. Пишу библиотеку. В какой то момент stl сал себя очень странно вести.
Declare.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
#pragma warning(disable:4005)
#define DELETE_COPY_OPERATORS(CLASS) CLASS(const CLASS&) = delete;\
const CLASS& operator=(const CLASS&) = delete
#define DELETE_MOVE_OPERATORS(CLASS) CLASS(CLASS&&) = delete;\
const CLASS& operator=(CLASS&&) = delete
#define BODYGENERATED(CLASS) \
DELETE_COPY_OPERATORS(CLASS);\
DELETE_MOVE_OPERATORS(CLASS)
#ifdef interface
#undef interface
#endif
#define interface __interface
#ifdef NULL
#undef NULL
#endif
const auto NULL = nullptr;
IWindow.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once
#include <vector>
#include <string>
#include <Declare.h>
namespace n0a {
    namespace graphics {
        struct WINDOW_MODE {
            size_t width;
            size_t height;
            size_t freequency;
        };
        enum class MULTI_SAMPLE_MODE {
            NONE, X1 = 1, X2 = 2, X4 = 4, X8 = 8, X16 = 16, X32 = 32
        };
        interface IWindow {
            virtual void setTitle(const std::wstring& title) noexcept abstract;
            virtual void setFullScreen(bool isFullScreen) noexcept abstract;
            virtual void setSize(size_t width, size_t height) noexcept abstract;
            virtual void setPosition(size_t x, size_t y) noexcept abstract;
            virtual void setMultiSampleMode(MULTI_SAMPLE_MODE mode) abstract;
            virtual const std::vector<WINDOW_MODE>& getModes() const noexcept abstract;
            virtual const std::vector<MULTI_SAMPLE_MODE>& getMultiSampleModes() const noexcept abstract;
        };
    }
}
WindowLib.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once
#include <IWindow.h>
namespace n0a {
    namespace graphics {
        interface IN0AGraphicsSystem;
    }
    namespace platform {
        class WindowLib abstract : public n0a::graphics::IWindow {
            graphics::IN0AGraphicsSystem* _graphicsSystem = NULL;
            std::vector<n0a::graphics::WINDOW_MODE> _modes;
            std::vector<n0a::graphics::MULTI_SAMPLE_MODE> _multiSamples;
            BODYGENERATED(WindowEngine);
        protected:
            virtual graphics::IN0AGraphicsSystem* getGraphicsSystem() const final;
            virtual void addWindowMode(const n0a::graphics::WINDOW_MODE& mode) noexcept final;
            virtual void addMultiSampleMode(n0a::graphics::MULTI_SAMPLE_MODE mode) noexcept final;
        public:
            WindowEngine(graphics::IN0AGraphicsSystem*);
            virtual const std::vector<n0a::graphics::WINDOW_MODE>& getModes() const noexcept final;
            virtual const std::vector<n0a::graphics::MULTI_SAMPLE_MODE>& getMultiSampleModes() const noexcept final;
            virtual void run() noexcept abstract;
            virtual ~WindowEngine() noexcept;
        };
    }
}
WindowLib.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "WindowEngine.h"
n0a::platform::WindowEngine::WindowEngine(n0a::graphics::IN0AGraphicsSystem* gsystem) : _graphicsSystem(gsystem) {}
n0a::graphics::IN0AGraphicsSystem* n0a::platform::WindowEngine::getGraphicsSystem() const {
    return this->_graphicsSystem;
}
n0a::platform::WindowEngine::~WindowEngine() noexcept {}
const std::vector<n0a::graphics::WINDOW_MODE>& n0a::platform::WindowEngine::getModes() const noexcept {
    return this->_modes;
}
void n0a::platform::WindowEngine::addWindowMode(const n0a::graphics::WINDOW_MODE& mode) noexcept {
    this->_modes.push_back(mode);
}
void n0a::platform::WindowEngine::addMultiSampleMode(n0a::graphics::MULTI_SAMPLE_MODE mode) noexcept {
    this->_multiSamples.push_back(mode);
}
const std::vector<n0a::graphics::MULTI_SAMPLE_MODE>& n0a::platform::WindowEngine::getMultiSampleModes() const noexcept {
    return this->_multiSamples;
}
А студия ругается:
1>WindowLib.cpp
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cstdlib(21): error C2039: fabs: не является членом "`global namespace'"
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cstdlib(21): error C3861: fabs: идентификатор не найден
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cstdlib(26): error C2039: fabsf: не является членом "`global namespace'"
...
C1003: число ошибок превышает 100; остановка компиляции
1>Создание кода...
1>Сборка проекта "n0a.platform.windows.vcxproj" завершена с ошибкой.
И кстати так на каждом файле который использует stl
Помогите пожалуйста. Заранее благодарю

Добавлено через 6 минут
Переустановка студии, и пересоздание проэкта не помогло
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.06.2018, 20:45
Ответы с готовыми решениями:

Visual studio 2017 ошибка
в vs 2017 при открытии мастера классов в MFC выскакивает такая ошибка. Подскажите как исправить ее.

Настроить Qt в Visual Studio 2017
Хотел начать разрабатывать оконные приложения. Возможностей средств классического приложения Windows в VS 2017 мне не хватило (тяжело...

Visual Studio 2017 - портит крякнутую ОС
Добрый день, уважаемые форумчане. Обращаюсь к вам с бедой :umbrage:, с которой столкнулся при установлении IDE Visual Studio Community...

13
 Аватар для vlisp
1063 / 984 / 153
Регистрация: 10.08.2015
Сообщений: 5,348
29.06.2018, 20:49
поспешишь - людей насмешишь, тебе компилятор написал ошибку, но ты лезешь на форум, зачем?
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 30
29.06.2018, 20:57  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
поспешишь - людей насмешишь, тебе компилятор написал ошибку, но ты лезешь на форум, зачем?
Обрати внимание на то в каком файле ошибка
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
29.06.2018, 21:00
Есть подозрение что что-то не так с дефайнами в вашем Declare.h.
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 30
29.06.2018, 21:08  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Есть подозрение что что-то не так с дефайнами в вашем Declare.h.
К сожалению нет. Я проверял, даже полностью закоментировал include с Declare.h
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
29.06.2018, 21:09
Цитата Сообщение от Leon24 Посмотреть сообщение
fabs: идентификатор не найден
C++
1
#include <cmath>
в помощь
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 30
29.06.2018, 21:12  [ТС]
Цитата Сообщение от Max Dark Посмотреть сообщение
#include <cmath>
в помощь
Он в дебрях stl уже подключается и следующие ошибки подтверждают это:
...
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(21): warning C4244: аргумент: преобразование "double" в "int", возможна потеря данных
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(26): error C2039: acosf: не является членом "`global namespace'"
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(26): error C3861: acosf: идентификатор не найден
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(31): error C2039: acoshf: не является членом "`global namespace'"
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(31): error C3861: acoshf: идентификатор не найден
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(36): error C2039: asinf: не является членом "`global namespace'"
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(36): error C3861: asinf: идентификатор не найден
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(41): error C2039: asinhf: не является членом "`global namespace'"
1>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.1 4.26428\include\cmath(41): error C3861: asinhf: идентификатор не найден
...
0
29.06.2018, 21:12

Не по теме:

у M$ студии есть неприятная привычка ломаться по непонятным причинам...
Часто помогает только переустановка... Windows(
Ибо зачищать все, что наустанавливала студия замучаешься

0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 30
29.06.2018, 21:16  [ТС]
Проблема именно в среде. Так как со времени последнего изменения до появления этих ошибок прошло некоторое время(раньше у меня этот код успешно компилировался)

Добавлено через 1 минуту
Цитата Сообщение от Max Dark Посмотреть сообщение
Не по теме:
у M$ студии есть неприятная привычка ломаться по непонятным причинам...
Часто помогает только переустановка... Windows(
Ибо зачищать все, что наустанавливала студия замучаешься
У меня было подозрение что только это и поможет.
Но все таки хотелось бы сохранить систему
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
29.06.2018, 21:21
Цитата Сообщение от Leon24 Посмотреть сообщение
Но все таки хотелось бы сохранить систему
Попробуйте через установщик студии(Visual Studio Instaler в меню "Пуск") удалить, а затем заново установить все компоненты, относящиеся к C++
0
 Аватар для vlisp
1063 / 984 / 153
Регистрация: 10.08.2015
Сообщений: 5,348
29.06.2018, 21:23
поспешишь - людей насмешишь, тебе компилятор написал ошибку, но ты лезешь на форум, зачем?
Цитата Сообщение от Leon24 Посмотреть сообщение
Обрати внимание на то в каком файле ошибка
у студии вывалится так вывалится, а потом окажется, что ты просто std:: забыл написать или прочая ерундень
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
29.06.2018, 21:33
Leon24, попробуйте собрать ваш проект другим компилятором и посмотрите ошибки там.
Думаю, что вам подойдет QtCreator+MinGW.

Добавлено через 1 минуту
И вроде бы interface в студии является зарезервированным словом
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 30
30.10.2018, 14:40  [ТС]
Помогла переустановка windows (код я не менял)
0
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 1
11.11.2019, 13:14
Была примерно такая-же ошибка при попытке сконвертить проект VS2003 в VS2017. В итоге причиной оказались указание в проекте прямо брать хидеры из студии 2003
"c:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include"
, хотя компилятор ругался на студию 2017
"1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14. 11.25503\atlmfc\include\atlwinverapi.h(7 10): error C3861: 'LCMapStringEx': identifier not found"
и еще куча ошибок типа " не является членом "`global namespace'". Убрал путь на VS2003 - все скомпилилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2019, 13:14
Помогаю со студенческими работами здесь

Visual studio 2017 не видит std::apply
#include &lt;iostream&gt; #include &lt;tuple&gt; #include &lt;utility&gt; int add(int first, int second) { return first + second; } int main() ...

Obj без __imp__ префикса, Visual Studio 2017
После компиляции получаеться обьектный файл, вызовы системных функций в нём декларированы с префиксом __imp__ и с окончанием @4 и т.п....

Как в visual studio 2017 подключить dll библиотеку к проекту?
Как в visual studio 2017 подключить dll библиотеку к проекту? Явным и неясным способом. В одном случае у меня есть только файл .dll, во...

В коде возникли ошибки при переходе с Visual studio 2013 на Visual studio 2017
Добрый день, решил попробовать поменять свою 2013 студию на 2017 и заметил такую проблему, при открытии проектов 13 года и даже копирования...

Программа компилируется в Borland 6.0 но не компилируется в Visual Studio 2008
Ета програма компилируетса в борланде 6.0 но не компилируетса в Visualstudio 2008 и в борланде 10-м почему? #include&lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru