Не компилируется Release exe.-файл
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 20.06.18 07:31
Оценка:
У меня есть решение MySolution в виде диалогового интерфейсного окна, которое я откомпилировал и создал Debug .exe-файл. Этот файл нормально запускается как из среды разработки Visual Studio 2012, так и самостоятельно. Решение MySolution делится на проекты MyProject1, MyProject2, ..., MyProjectN.

Но я решил на основе этого решения создать также и Release exe.-файл. Для этого я в окне среды разработки в Отладка — Свойства MySolution — Свойства конфигурации поставил "Активная (Release)". После этого я перестроил моё решение.

В результате у меня высветились ошибки:
1) в различных .h-файлах и .cpp-файлах появились ошибки:

error C1083: Не удается открыть файл включение:
MyProject1\file1.h

error C1083: Не удается открыть файл включение:
MyProject2\file2.h

...

error C1083: Не удается открыть файл включение:
MyProjectN\fileN.h


2) в файле afxv_w32.h:

error C1189: #error: WINDOWS.H already included. MFC apps must not #include <windows.h>


--это в файле afxv_w32.h в строке:

#ifdef _WINDOWS_
#error WINDOWS.H already included. MFC apps must not #include <windows.h>
#endif


Что это означает? Как исправить ошибку--как сделать так, чтобы Release .exe-файл компилировался и собирался?
1613 г. = 2024 г.
Re: Не компилируется Release exe.-файл
От: Maniacal Россия  
Дата: 20.06.18 07:53
Оценка: +1
Здравствуйте, RussianFellow, Вы писали:

RF>В результате у меня высветились ошибки:

RF>1) в различных .h-файлах и .cpp-файлах появились ошибки:

RF>

RF>error C1083: Не удается открыть файл включение:
RF>MyProject1\file1.h


Тут, похоже, в проекте настройки путей INCLUDE для Debug и Release конфигураций разные.

RF>2) в файле afxv_w32.h:

RF>

RF>error C1189: #error: WINDOWS.H already included. MFC apps must not #include <windows.h>


А вот это засада. Бывало такое. Где-то в коде закралась строка вида #include <Windows.h>, причём напару с директивой #ifndef _DEBUG
Самое печальное, что приблизительно 400 майкрософтовских заголовочных файлов содержат этот "#include <Windows.h>". Тут только методом "народного тыка". Смотреть при компиляции какого файла происходит обнаружение, что подключён Windows.h и начать в заголовочном и файле исходников методично комментить include'ы, смотреть после чего ошибка исчезнет. Возможно придётся и часть кода в этих файлах закомментить, чтобы сообщений об ошибках было меньше. А то любит компилятор выдать "слишком много ошибок, компиляция остановлена".
Можно, конечно, временно и файл Windows.h подправить, добавив в начало "#error Got you!". Но, боюсь, где-то в своих глубинах MFC вполне может инклюдить Windows.h
Re: Не компилируется Release exe.-файл
От: anatolym  
Дата: 21.06.18 09:05
Оценка: +1
Здравствуйте, RussianFellow, Вы писали:

Ты слишком много времени тратишь на интерфейс и решение проблем с компиляцей/сборкой.
Проще перейти на C# + WinForms. Создавать интерфейс будет удобно как на Delphi, а код вычислений от аналогичного кода на C++ будет мало отличаться (в части выражений и основных языковых операторов).
Re: Не компилируется Release exe.-файл
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 25.09.18 08:49
Оценка:
Коллеги, у меня теперь возникла другая проблема: проект, который благополучно компилировался, собирался, запускался и выполнялся в Debug-версии, при линковке (после компиляции) в Release-версии вдруг стал выдавать ошибку:

error LNK2001: неразрешенный внешний символ "_main" MSVCRT.lib (crtexe.obj)


Что это означает? Как сделать так, чтобы решение собиралось (линковалось) в Release-версии?

Я работаю в Visual Studio 2012.
1613 г. = 2024 г.
Re[2]: Не компилируется Release exe.-файл
От: AlexGin Беларусь  
Дата: 06.10.18 01:35
Оценка: -1
Здравствуйте, RussianFellow, Вы писали:

RF>Коллеги, у меня теперь возникла другая проблема: проект, который благополучно компилировался, собирался, запускался и выполнялся в Debug-версии, при линковке (после компиляции) в Release-версии вдруг стал выдавать ошибку:


RF>

RF>error LNK2001: неразрешенный внешний символ "_main" MSVCRT.lib (crtexe.obj)


RF>Что это означает? Как сделать так, чтобы решение собиралось (линковалось) в Release-версии?


RF>Я работаю в Visual Studio 2012.


1) вот примерная тема:
https://ru.stackoverflow.com/questions/89603/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%9D%D0%B5%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B9-%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB-main

2) применяй ENGLISH версию студии — скопировав ответ АНГЛИЙСКОЙ студии в строку поиска гугла, можно найти намного больше релевантных (читай — ПОЛЕЗНЫХ) ответов, чем при использовании русской версии...

3) Все-таки по-стараться под-напрячь собственную смекалку, прежде чем задавать вопрос здесь — на КЫВТ
Здешним товарищам отвечать вроде как и не трудно, однако — как возвысятся твои ЧСВ и самооценка, когда ударишь себя в грудь кулаком —
с гордыми словами:
— САМ дошёл до истины!!!
Отредактировано 06.10.2018 1:46 AlexGin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.