Как исправить ошибки сборки

0 / 0 / 0

Регистрация: 11.09.2021

Сообщений: 3

1

VS 2019

Ошибка сборки

11.09.2021, 19:39. Показов 4273. Ответов 4


Студворк — интернет-сервис помощи студентам

Добрый вечер! Решил вернуться к упражнениям по с++, открыл VS19 и столкнулся с проблемой сборки проекта. 4 месяца назад все работало как часы, но сейчас даже дефолтный хелло ворлд не компилируется при создании консольного приложения. Подумал, что переустановка поможет. Помогла до первого закрытия вижуалки. (переустанавливал несколько раз, каждый раз компилируется только до первого закрытия).
Посему, пара вопросов: уже просто интересно, в чём может быть проблема (почему всё адекватно работает до первого закрытия, после переустановки снова все работает и так по кругу)? Как всё это исправлять? (желательно, без переустановки ос)
П.С. Разумеется, шерстил форумы, преимущественно ру, немного зарубежных, проблема не у меня одного, но всё часто сводится к “Кривой код, ищи ошибки”, таких прошу идти мимо, ведь не компилируется даже базовый хелло ворлд.

Миниатюры

Ошибка сборки
 

Ошибка сборки
 



0



фрилансер

4754 / 4356 / 924

Регистрация: 11.10.2019

Сообщений: 11,426

11.09.2021, 20:44

2

Iridea, а что за плашка странная вверху справа АДМИНИСТРАТОР ? У меня такой нет. Может, студия запущена от имени администратора, а этого не нужно? Попробуй запустить от текущего юзера

Добавлено через 51 секунду
да, я у себя проверил – запускаю от имени администратора, появляется ADMIN

явно что-то с этим связано



0



0 / 0 / 0

Регистрация: 11.09.2021

Сообщений: 3

12.09.2021, 00:31

 [ТС]

3

Да, к такому же выводу пришел, сейчас буду дальше копаться)

Добавлено через 3 часа 0 минут
По умолчанию запускается не от имени администратора, плашка висит там в обоих случаях

Сменил языковой пакет, снова закомпилировало до первого выхода из программы



0



0 / 0 / 0

Регистрация: 11.09.2021

Сообщений: 3

12.09.2021, 13:07

 [ТС]

4

Для всех тех, кто так же только начинает свой путь и неспособен решить свои проблемы сам (а с такой же проблемой много людей), скажу что кончилось всё тем, что я скачал себе превью VS22 (мне полный функционал не нужен, монетизировать всё равно не смогу ничего), и там таких проблем нет. Остаётся только думать, что ошибка вызвана из-за самой вижуалки, но мне не хватает ни знаний, ни желания, чтоб копаться во всех настройках самой иде и проекта.



0



Just Do It!

3559 / 1955 / 626

Регистрация: 23.09.2014

Сообщений: 6,303

Записей в блоге: 2

13.09.2021, 10:08

5

Цитата
Сообщение от Iridea
Посмотреть сообщение

снова закомпилировало до первого выхода из программы

перед повторной компиляцией(сборкой) проверьте не запущен хеллоуворлд собранный первой попыткой?!
закройте его(например, из панели задач – самый хардкорный вар)
и повторите компиляцию.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

13.09.2021, 10:08

5

Я понимаю, что это может показаться бредом, но я у меня глаз начинает дергаться уже. На всех сайтах пишут давайте мол сделаем первый проект и бла бла бла, я установил себе visual studio 2019, создаю проект, копирую текст кода

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <cstdlib> // для system
using namespace std;
 
int main()
{
    cout << "Hello, world!" << endl;
    system("pause"); // Только для тех, у кого MS Visual Studio
    return 0;
}

и у меня вываливается куча ошибок.
Первым выскакивает окно — Возникли ошибки сборки… Продолжить и запустить последний успешно построенный вариант?

Жму Да

Не удается запустить программу (путь к экзешнику)

Не удается найти указанный файл

Жму ОК
И внизу под кодом 17 ошибок, которые ругаются на код…

Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2018 неизвестный знак «0x7» Project4 C:Program Files (x86)Windows Kits10Include10.0.17763.0ucrtstddef.h 1
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2018 неизвестный знак «0x1b» Project4 C:Program Files (x86)Windows Kits10Include10.0.17763.0ucrtstddef.h 1
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2146 синтаксическая ошибка: отсутствие «;» перед идентификатором «щюь» Project4 C:Program Files (x86)Windows Kits10Include10.0.17763.0ucrtstddef.h 1

Это я некоторые скопировал.

Я пробовал в VSCode попробовать, но там тоже ничего не запускается…. Проблема с файло JSON. МОжет какие-то предварительные настройки нужно сделать?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

I recently updated from Visual Studio 2017 Community Edition to Visual Studio 2019 Community Edition.

Now, if I build my solution with errors, they will show up in the build output, but not all of them will appear in the error list. It would appear only errors of open files will show up in the error list. This is incredibly annoying.

I am not alone in this issue. It has been reported many times on Microsoft’s forums, but no one has a definitive solution.

I have tried a variety of solutions people suggested in those threads:

  • I have ensured the filters are legitimate: Entire Solution, Errors enabled, Build + Intellisense.
  • I have tried deleting the .vs folder and restarting Visual Studio.
  • I just updated to the very latest Visual Studio 2019 version. Supposedly there are many different versions of this error, happening in versions of Visual Studio all the way back to 2017. Some supposedly have been fixed…?
  • I have disabled parallel project loading.

I have experienced this before in other versions of Visual Studio with Razor pages. To my knowledge, that’s to be expected in Razor though.

The only other factor that I severely doubt impacts anything is that it’s a Visual Studio project generated by Unity editor. From what I’ve read, ASP.NET, Razor, Xamarin, and other frameworks have each had their own version of issue reported. Perhaps Unity is afflicted by it too, but I don’t see how or why. I doubt Unity’s auto-generated Visual Studio projects are that different from your standard library projects.

You’re in Visual Studio… you press F5 (Run) and are greeted by this dialog:

There were build errors. Would you like to continue and run the last successful build?

Wonderful.

I’m sure there are cases where running the last successful build is useful, however, I have never purposefully answered yes to this question. Oh sure, I’ve clicked Yes plenty of times, and waiting in frustration for the first opportunity to undo my blunder, but nothing more.

So, have you ever found this feature useful? And if so, under what circumstances did it become helpful for you to be able to run the last successful build of your application?

How often do you accidentally click Yes and kick yourself while waiting for the app to start?

asked Feb 27, 2009 at 19:02

joshuapoehls's user avatar

joshuapoehlsjoshuapoehls

31k11 gold badges50 silver badges61 bronze badges

4

In VS2008 there are the following options you can set to change the behavior (not sure if there are similar options in other versions of Visual Studio):

Projects and Solutions/Build and Run

    - On Run, when projects are out of date:

          Always build
          Never build
          Prompt to build <== default setting

    - On Run, when build or deployment errors occur:

          Launch old version
          Do not launch
          Prompt to launch <== default setting

Set the above options to «Always build» and «Do not launch» and you get what I consider a more ueseful behavior. Though sometimes when I try to launch the debugger and there’s a build error it takes me a few seconds to realize why I’m not getting to the breakpoint I thought I’d be hitting (it might be nice to get some sort of ‘toaster’ type of message to knock me out of my stupor).

answered Feb 27, 2009 at 19:31

Michael Burr's user avatar

Michael BurrMichael Burr

329k50 gold badges528 silver badges755 bronze badges

6

This behaviour can be defined under
Tools->Options->Projects and Solutions->Build And Run->
On Run, when Build or Deployment Errors occur

here you can select:
— Launch old version
— Do not launch
— Ask to launch

answered Apr 9, 2009 at 8:56

This can be useful when you debug a web application and one of the pages does not compile, because some other developer checked in a bad version, or you can’t check out the latest code for whatever reason, but you know you will not hit that page. I do it all the times.

answered Feb 27, 2009 at 19:06

cdonner's user avatar

cdonnercdonner

36.6k22 gold badges105 silver badges149 bronze badges

Interesting. I’ve actually never seen that dialog — I know there’s an option to enable/disable running the previous successful build, so perhaps it shows a dialog first. You can look into disabling it if you won’t use it.

One reason this can be useful, however, is if you want to remind yourself what the bug was that you were working on. Not all things can be fixed in edit-and-continue, and you might need a memory jog.

answered Feb 27, 2009 at 19:07

lc.'s user avatar

lc.lc.

112k20 gold badges157 silver badges185 bronze badges

It’s also helpful on web applications, because it will force the cassini servers to start. You need this if you are working on one project in the solution that won’t compile, and you need to refresh the web services in another project.

answered Feb 27, 2009 at 19:23

kemiller2002's user avatar

kemiller2002kemiller2002

113k27 gold badges196 silver badges251 bronze badges

When using VS 2008 Express, there is a box to never show this dialog again. Just tried it and it will take away the dialog, leaving only a build failed message in the bottom left hand portion of the screen.

As for how often do I hit it, quite often. Frustrating as sometimes I have changed the code complete while testing things and will get something completely unrelated to the task at hand. Not sure when Microsoft figured this would be useful.

answered Feb 27, 2009 at 20:05

Terry's user avatar

TerryTerry

3191 gold badge3 silver badges13 bronze badges

It works on the preference of selection of appropriate dll on runtime. Executables are not generated if there is any built error so the compiler looks for the executable which is existing which is obviously the last successful compiled.

answered Jun 9, 2009 at 12:03

You’re in Visual Studio… you press F5 (Run) and are greeted by this dialog:

There were build errors. Would you like to continue and run the last successful build?

Wonderful.

I’m sure there are cases where running the last successful build is useful, however, I have never purposefully answered yes to this question. Oh sure, I’ve clicked Yes plenty of times, and waiting in frustration for the first opportunity to undo my blunder, but nothing more.

So, have you ever found this feature useful? And if so, under what circumstances did it become helpful for you to be able to run the last successful build of your application?

How often do you accidentally click Yes and kick yourself while waiting for the app to start?

asked Feb 27, 2009 at 19:02

joshuapoehls's user avatar

joshuapoehlsjoshuapoehls

31k11 gold badges50 silver badges61 bronze badges

4

In VS2008 there are the following options you can set to change the behavior (not sure if there are similar options in other versions of Visual Studio):

Projects and Solutions/Build and Run

    - On Run, when projects are out of date:

          Always build
          Never build
          Prompt to build <== default setting

    - On Run, when build or deployment errors occur:

          Launch old version
          Do not launch
          Prompt to launch <== default setting

Set the above options to «Always build» and «Do not launch» and you get what I consider a more ueseful behavior. Though sometimes when I try to launch the debugger and there’s a build error it takes me a few seconds to realize why I’m not getting to the breakpoint I thought I’d be hitting (it might be nice to get some sort of ‘toaster’ type of message to knock me out of my stupor).

answered Feb 27, 2009 at 19:31

Michael Burr's user avatar

Michael BurrMichael Burr

329k50 gold badges528 silver badges755 bronze badges

6

This behaviour can be defined under
Tools->Options->Projects and Solutions->Build And Run->
On Run, when Build or Deployment Errors occur

here you can select:
— Launch old version
— Do not launch
— Ask to launch

answered Apr 9, 2009 at 8:56

This can be useful when you debug a web application and one of the pages does not compile, because some other developer checked in a bad version, or you can’t check out the latest code for whatever reason, but you know you will not hit that page. I do it all the times.

answered Feb 27, 2009 at 19:06

cdonner's user avatar

cdonnercdonner

36.6k22 gold badges105 silver badges149 bronze badges

Interesting. I’ve actually never seen that dialog — I know there’s an option to enable/disable running the previous successful build, so perhaps it shows a dialog first. You can look into disabling it if you won’t use it.

One reason this can be useful, however, is if you want to remind yourself what the bug was that you were working on. Not all things can be fixed in edit-and-continue, and you might need a memory jog.

answered Feb 27, 2009 at 19:07

lc.'s user avatar

lc.lc.

112k20 gold badges157 silver badges185 bronze badges

It’s also helpful on web applications, because it will force the cassini servers to start. You need this if you are working on one project in the solution that won’t compile, and you need to refresh the web services in another project.

answered Feb 27, 2009 at 19:23

kemiller2002's user avatar

kemiller2002kemiller2002

113k27 gold badges196 silver badges251 bronze badges

When using VS 2008 Express, there is a box to never show this dialog again. Just tried it and it will take away the dialog, leaving only a build failed message in the bottom left hand portion of the screen.

As for how often do I hit it, quite often. Frustrating as sometimes I have changed the code complete while testing things and will get something completely unrelated to the task at hand. Not sure when Microsoft figured this would be useful.

answered Feb 27, 2009 at 20:05

Terry's user avatar

TerryTerry

3191 gold badge3 silver badges13 bronze badges

It works on the preference of selection of appropriate dll on runtime. Executables are not generated if there is any built error so the compiler looks for the executable which is existing which is obviously the last successful compiled.

answered Jun 9, 2009 at 12:03

Недавно я обновился от Visual Studio 2017 Community Edition в Visual Studio 2019 Community Edition.

Теперь, если я создаю свое решение с ошибками, они будут отображаться в выходе на сборку, но не все они будут отображаться в списке ошибок. Поягиваются бы только ошибки открытых файлов в списке ошибок. Это невероятно раздражает.

Я не одинок в этом вопросе. Об этом сообщалось много раз на форумах Microsoft, но никто не имеет окончательного решения.

Я пробовал различные решения, которые люди предложили в этих потоках:

  • Я гарантировал, что фильтры являются легитимными: все решение, ошибки включены, построить + Intellisense.
  • Я пытался удалить папку .vs и перезапустить Visual Studio.
  • Я только что обновил до последней версии Visual Studio 2019. Предположительно, есть много разных версий этой ошибки, происходящее в версиях Visual Studio, вплоть до 2017 года. Некоторые предположительно были исправлены …?
  • Я отключил параллельную загрузку проекта.

Я испытал это раньше в других версиях Visual Studio с помощью страниц бритвы. Насколько мне известно, это следует ожидать в бритве, хотя.

Единственным другим фактором, который я серьезно сомневаюсь, что это то, что это проект Visual Studio, созданный Unity Editor. Из того, что я прочитал, ASP.NET, бритва, ксамарин и другие рамки у каждого была представлена собственная версия вопроса. Возможно, единство поражено этим тоже, но я не вижу, как или почему. Я сомневаюсь, что автоматически генерируемые проекты Visual Studio Studio Unity могут отличаться от ваших стандартных библиотечных проектов.

4 ответа

Лучший ответ

Теперь я установил Visual Studio 2019 на две отдельные машины, и кажется, что «анализ полного решения» отключен по умолчанию.

Просто проверьте флажок в параметры, и все, кажется, работает, как это было ранее: Включить полный анализ решений« SRC = »HTTPS: //i.stack.imgur. com / enwvr.png


19

Zoop
20 Сен 2019 в 04:05

В моем случае это был тот факт, что я строил под профилем выпуска. Как только я выбрал «Отладка» в раскрывающемся списке рядом с кнопкой «Начать отладку», через несколько секунд в списке ошибок стали отображаться мои ошибки.


0

Jeff Zizzi
7 Июл 2021 в 04:17

Для тех, кто использует Visual Studio 2019 v16.9.1 Убедитесь, что ваше сообщение об ошибках выглядит что-то подобное:

Error List Window

Важная часть для меня выбрала build + intellisense (ранее его было установлено на building только , что объясняет, почему список ошибок только будет обновляться только на сборке).


2

Eric Mutta
3 Апр 2021 в 04:27

В моем случае решением было отключить «Инструменты-> Параметры-> Проекты и решения-> Общие-> Показывать окно вывода при запуске сборки». Несмотря на то, что в окне «Вывод» было показано «0 выполнено успешно, 1 не удалось», оно не переключилось обратно в окно «Список ошибок», даже если флажок над «Всегда показывать список ошибок, если сборка завершена с ошибками» должна была переместить его в «Ошибка. Список’. Очевидно, это ошибка в Visual Studio 2019, которой не было в Visual Studio 2017 (я только что закончил обновление).


0

AndresRohrAtlasInformatik
17 Май 2021 в 13:33

У меня возникла ошибка при отладке кода Java в коде Visual Studio.
Ошибка ниже

build failed, do you want to continue?

Я попытался очистить рабочее пространство, но это не сработало.
Пожалуйста, как я могу исправить эту проблему?

Перейти к ответу
Данный вопрос помечен как решенный


Ответы
7

Обновлять. Задача решена Я решил эту проблему, очистив кеш рабочей области в VS-коде. Вот ссылка на соответствующую страницу: Каталог чистой рабочей области VSCODE. Я переименовал несколько папок, имен классов и пакетов. Видимо плагину RedHat-Developer удалось рассинхронизировать. Файл .classpath не синхронизировался с файлом POM. Очистка кеша рабочей области заставила плагин воссоздать данные проекта из спецификации maven. Задача решена. Не уверен, но если кто-то из проекта RedHat это прочитает, мне это покажется ошибкой или недостатком. В любом случае это можно обойти.

Исходный ответ следует:

Я думаю, что Лю Бэй был недостаточно ясным. У меня такая же проблема. У меня есть проект, который отлично строится в Maven, и когда я запускаю отладчик в Visual Studio Code, это уведомление появляется в правом нижнем углу окна VSCode.

Очевидно, расширение «Отладчик для Java» считает, что существует проблема сборки. Однако нет сообщений об ошибках на вкладках ПРОБЛЕМЫ, ВЫВОД, ОТЛАДКА КОНСОЛИ или ТЕРМИНАЛ.

Сборки проекта и пакеты в Maven прекрасны, и его можно отлаживать в режиме присоединения, что в лучшем случае утомительно.

В VSCode что-то происходит, о чем я нигде не сообщаю. Я подозреваю, что подключаемый модуль RedHat VSCode для Java тоже используется, но мне нужна помощь в выяснении того, как обойти эту проблему.

Я должен сказать, что мы тратим слишком много времени на решение проблем с инструментами и зависимостями и недостаточно времени на приложение. Проект, над которым мы работаем, предназначен для распространения с открытым исходным кодом. Spring Framework кажется идеальным для наших целей, но инструменты не так уж и много. Мы не очень далеко продвинулись в этом проекте, и меня уже настаивают на переходе на .NET core MVC.

Действительно нужна небольшая помощь …

У меня это не сработало, но я выяснил, что сработало.

Прежде всего, глядя на плагин Java Dependencies, я намекнул, что что-то не синхронизировано. Имя моего приложения (артефакта) не соответствует имени в древовидном представлении Java Dependencies.

Это было исправлено путем полной очистки папки VSCode workspaceStorage!

В моем случае эта папка находилась в (Windows 10):

C:Users<myuser>AppDataRoamingCodeUserworkspaceStorage

Если вы не можете найти его в этом месте, просто найдите папку workspaceStorage.

Затем нажмите ctrl + shift + p (в моем случае), чтобы открыть запрос действия VSCode. Затем выберите команду:

Java: Open Java Language Server Log File

Это откроет файл журнала, который обычно не отображается при построении вашего кода Java, и сообщит вам, что именно пошло не так при сборке.

В моем случае это был конфликт, так как у меня было два файла AppConfig.java, один в основном и один в тестовом. Maven прекрасно справляется с этим, но, очевидно, построитель VSCode Java — нет.

Очевидно, это ошибки в плагинах, о которых я сообщу участникам GitHub, но пока нам придется немного поработать вручную.

Тем не менее, я надеюсь, что это поможет всем вам, разочаровавшимся разработчикам VSCode Java.

Попробуйте очистить кеш или
Попробуйте добавить свои файлы в новую рабочую область, у меня это сработало!

Итак, прочитав на этой странице несколько комментариев о кеш-памяти и рабочей области, я предпочел сделать что-нибудь простое. Я просто закрыл и открыл свой VS и Voilá Build up все мои решения :-)

Ошибка сборки в VsCode

Эта ошибка возникает из-за того, что в папке вашей рабочей области в другом исходном коде есть ошибки.

Итак, создайте новую папку и сделайте ее папкой рабочей области, а затем напишите свои коды в этой папке и запустите ее.

У меня тоже была эта ошибка, и она работает для меня, поэтому проверьте свою.

Используя OSX, мне удалось преодолеть эту проблему: вы можете получить доступ либо из своего терминала, либо просто использовать ярлык (сдвиг команды и c) выберите «Базовая система», затем «Библиотека», найдите папку Java, затем нажмите папку виртуальных машин Java. Проверьте, есть ли актуальная версия jdk (самая последняя). Я заметил, что у меня было две папки jdk, одна, вероятно, унаследованная от предыдущей установки, и самая последняя версия jdk-15. Перетащите jdk-14 в корзину, введите пароль, закройте искатель и перезапустите VSCode.
Теперь все работает нормально!

У меня такая же проблема.
Я только что загрузил это, предоставленное vs code
пакет расширений Java
щелкните ссылку, загрузите и откройте ее. он автоматически настроит vs code для java.
ссылка ниже…

Https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack

Другие вопросы по теме

В режиме отладки, если в нашем приложении есть ошибка, когда мы нажимаем F5, чтобы начать отладку, появляется диалоговое окно с предупреждением: «В вашей программе есть ошибка. Вы хотите запустить свою последнюю измененную программу?» или что-то в этом роде.

Я хочу включить или отключить этот диалог.

Как я могу это сделать?

1 ответы

Вы можете включить/выключить эту подсказку в настройках Visual Studio:

  1. В меню «Инструменты» выберите «Параметры».
  2. В появившемся диалоговом окне разверните «Проекты и решения» и нажмите «Сборка и запуск».
  3. С правой стороны вы увидите поле со списком с надписью «При запуске, когда возникают ошибки сборки или развертывания».

    • Если вы хотите отключить окно сообщения, выберите «Не запускать» или «Запустить старую версию» (что запустит старую версию автоматически).
    • Если вы хотите включить окно сообщения, выберите «Предлагать запуск», который будет спрашивать вас каждый раз.

   Варианты VS «Сборка и запуск»

Конечно, как люди предположили в комментариях, это означает, что где-то в вашем коде есть ошибки, которые мешают его компиляции. Вам нужно использовать «Список ошибок», чтобы выяснить, что это за ошибки, а затем исправить их.

Создан 17 янв.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

c#
visual-studio
debugging

or задайте свой вопрос.

У меня возникла ошибка при отладке кода Java в коде Visual Studio.
Ошибка ниже

build failed, do you want to continue?

Я попытался очистить рабочее пространство, но это не сработало.
Пожалуйста, как я могу исправить эту проблему?

Перейти к ответу
Данный вопрос помечен как решенный


Ответы
7

Обновлять. Задача решена Я решил эту проблему, очистив кеш рабочей области в VS-коде. Вот ссылка на соответствующую страницу: Каталог чистой рабочей области VSCODE. Я переименовал несколько папок, имен классов и пакетов. Видимо плагину RedHat-Developer удалось рассинхронизировать. Файл .classpath не синхронизировался с файлом POM. Очистка кеша рабочей области заставила плагин воссоздать данные проекта из спецификации maven. Задача решена. Не уверен, но если кто-то из проекта RedHat это прочитает, мне это покажется ошибкой или недостатком. В любом случае это можно обойти.

Исходный ответ следует:

Я думаю, что Лю Бэй был недостаточно ясным. У меня такая же проблема. У меня есть проект, который отлично строится в Maven, и когда я запускаю отладчик в Visual Studio Code, это уведомление появляется в правом нижнем углу окна VSCode.

Очевидно, расширение «Отладчик для Java» считает, что существует проблема сборки. Однако нет сообщений об ошибках на вкладках ПРОБЛЕМЫ, ВЫВОД, ОТЛАДКА КОНСОЛИ или ТЕРМИНАЛ.

Сборки проекта и пакеты в Maven прекрасны, и его можно отлаживать в режиме присоединения, что в лучшем случае утомительно.

В VSCode что-то происходит, о чем я нигде не сообщаю. Я подозреваю, что подключаемый модуль RedHat VSCode для Java тоже используется, но мне нужна помощь в выяснении того, как обойти эту проблему.

Я должен сказать, что мы тратим слишком много времени на решение проблем с инструментами и зависимостями и недостаточно времени на приложение. Проект, над которым мы работаем, предназначен для распространения с открытым исходным кодом. Spring Framework кажется идеальным для наших целей, но инструменты не так уж и много. Мы не очень далеко продвинулись в этом проекте, и меня уже настаивают на переходе на .NET core MVC.

Действительно нужна небольшая помощь …

У меня это не сработало, но я выяснил, что сработало.

Прежде всего, глядя на плагин Java Dependencies, я намекнул, что что-то не синхронизировано. Имя моего приложения (артефакта) не соответствует имени в древовидном представлении Java Dependencies.

Это было исправлено путем полной очистки папки VSCode workspaceStorage!

В моем случае эта папка находилась в (Windows 10):

C:Users<myuser>AppDataRoamingCodeUserworkspaceStorage

Если вы не можете найти его в этом месте, просто найдите папку workspaceStorage.

Затем нажмите ctrl + shift + p (в моем случае), чтобы открыть запрос действия VSCode. Затем выберите команду:

Java: Open Java Language Server Log File

Это откроет файл журнала, который обычно не отображается при построении вашего кода Java, и сообщит вам, что именно пошло не так при сборке.

В моем случае это был конфликт, так как у меня было два файла AppConfig.java, один в основном и один в тестовом. Maven прекрасно справляется с этим, но, очевидно, построитель VSCode Java – нет.

Очевидно, это ошибки в плагинах, о которых я сообщу участникам GitHub, но пока нам придется немного поработать вручную.

Тем не менее, я надеюсь, что это поможет всем вам, разочаровавшимся разработчикам VSCode Java.

Попробуйте очистить кеш или
Попробуйте добавить свои файлы в новую рабочую область, у меня это сработало!

Итак, прочитав на этой странице несколько комментариев о кеш-памяти и рабочей области, я предпочел сделать что-нибудь простое. Я просто закрыл и открыл свой VS и Voilá Build up все мои решения 🙂

Ошибка сборки в VsCode

Эта ошибка возникает из-за того, что в папке вашей рабочей области в другом исходном коде есть ошибки.

Итак, создайте новую папку и сделайте ее папкой рабочей области, а затем напишите свои коды в этой папке и запустите ее.

У меня тоже была эта ошибка, и она работает для меня, поэтому проверьте свою.

Используя OSX, мне удалось преодолеть эту проблему: вы можете получить доступ либо из своего терминала, либо просто использовать ярлык (сдвиг команды и c) выберите «Базовая система», затем «Библиотека», найдите папку Java, затем нажмите папку виртуальных машин Java. Проверьте, есть ли актуальная версия jdk (самая последняя). Я заметил, что у меня было две папки jdk, одна, вероятно, унаследованная от предыдущей установки, и самая последняя версия jdk-15. Перетащите jdk-14 в корзину, введите пароль, закройте искатель и перезапустите VSCode.
Теперь все работает нормально!

У меня такая же проблема.
Я только что загрузил это, предоставленное vs code
пакет расширений Java
щелкните ссылку, загрузите и откройте ее. он автоматически настроит vs code для java.
ссылка ниже…

Https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack

Другие вопросы по теме

Error in plugin "sass"
Message:
    srcscssfunctions_functions.scss
Error: File to import not found or unreadable: ../../node_modules/sass-rem/rem.
        on line 1 of src/scss/functions/_functions.scss
        from line 1 of src/scss/style.scss
>> @import '../../node_modules/sass-rem/rem';

   ^

[22:54:29] Finished 'stylesheets' after 1.63 s
[22:54:35] Finished 'html' after 7.41 s
[22:54:36] Version: webpack 4.44.2
Built at: 2020-12-14 22:54:36
  Asset     Size  Chunks             Chunk Names
main.js  288 KiB       0  [emitted]  main
Entrypoint main = main.js

ERROR in ./src/js/main.js
Module Error (from ./node_modules/eslint-loader/dist/cjs.js):

C:rarus-test-mastersrcjsmain.js
  2:19  error  Unable to resolve path to module 'axios'  import/no-unresolved

✖ 1 problem (1 error, 0 warnings)


ERROR in ./src/js/store/index.js
Module Error (from ./node_modules/eslint-loader/dist/cjs.js):

C:rarus-test-mastersrcjsstoreindex.js
  2:18  error  Unable to resolve path to module 'vuex'  import/no-unresolved

✖ 1 problem (1 error, 0 warnings)

 @ ./src/js/main.js 4:0-28 8:2-7

ERROR in ./src/js/store/modules/dataList/dataList.js
Module Error (from ./node_modules/eslint-loader/dist/cjs.js):

C:rarus-test-mastersrcjsstoremodulesdataListdataList.js
  2:19  error  Unable to resolve path to module 'axios'  import/no-unresolved

✖ 1 problem (1 error, 0 warnings)

 @ ./src/js/store/index.js 5:0-51 9:4-12
 @ ./src/js/main.js

ERROR in ./src/js/main.js
Module not found: Error: Can't resolve 'axios' in 'C:rarus-test-mastersrcjs'
 @ ./src/js/main.js 2:0-26 5:22-27 9:2-7

ERROR in ./src/js/store/modules/dataList/dataList.js
Module not found: Error: Can't resolve 'axios' in 'C:rarus-test-mastersrcjsstoremodulesdataList'
 @ ./src/js/store/modules/dataList/dataList.js 2:0-26 50:4-9
 @ ./src/js/store/index.js
 @ ./src/js/main.js

ERROR in ./src/js/App.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/App.vue?vue&type=script&lang=js&)
Module not found: Error: Can't resolve 'vuex' in 'C:rarus-test-mastersrcjs'
 @ ./src/js/App.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/App.vue?vue&type=script&lang=js&) 50:0-46 66:17-27 68:16-26
 @ ./src/js/App.vue?vue&type=script&lang=js&
 @ ./src/js/App.vue
 @ ./src/js/main.js

ERROR in ./src/js/Components/ViewDataItem.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/Components/ViewDataItem.vue?vue&type=script&lang=js&)
Module not found: Error: Can't resolve 'vuex' in 'C:rarus-test-mastersrcjsComponents'
 @ ./src/js/Components/ViewDataItem.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/Components/ViewDataItem.vue?vue&type=script&lang=js&) 87:0-46 107:17-27 109:16-26
 @ ./src/js/Components/ViewDataItem.vue?vue&type=script&lang=js&
 @ ./src/js/Components/ViewDataItem.vue
 @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/App.vue?vue&type=script&lang=js&
 @ ./src/js/App.vue?vue&type=script&lang=js&
 @ ./src/js/App.vue
 @ ./src/js/main.js

ERROR in ./src/js/Components/ViewDataList.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/Components/ViewDataList.vue?vue&type=script&lang=js&)
Module not found: Error: Can't resolve 'vuex' in 'C:rarus-test-mastersrcjsComponents'
 @ ./src/js/Components/ViewDataList.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/Components/ViewDataList.vue?vue&type=script&lang=js&) 38:0-46 44:17-27 46:16-26
 @ ./src/js/Components/ViewDataList.vue?vue&type=script&lang=js&
 @ ./src/js/Components/ViewDataList.vue
 @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/js/App.vue?vue&type=script&lang=js&
 @ ./src/js/App.vue?vue&type=script&lang=js&
 @ ./src/js/App.vue
 @ ./src/js/main.js

ERROR in ./src/js/store/index.js
Module not found: Error: Can't resolve 'vuex' in 'C:rarus-test-mastersrcjsstore'
 @ ./src/js/store/index.js 2:0-24 6:8-12 7:19-23
 @ ./src/js/main.js
[22:54:37] webpack is watching for changes
Error from chokidar (C:): Error: EBUSY: resource busy or locked, lstat 'C:hiberfil.sys'
Error from chokidar (C:): Error: EBUSY: resource busy or locked, lstat 'C:pagefile.sys'
Error from chokidar (C:): Error: EBUSY: resource busy or locked, lstat 'C:swapfile.sys'
[22:55:04] ✔ fon.png -> before=1.66 MB after=761.44 KB reduced=942.42 KB(55.3%)
[22:55:04] Finished 'image' after 36 s

Это ваша первая программа на C (или C++) — она не такая уж большая, и вы собираетесь скомпилировать ее. Вы нажимаете на compile (или вводите команду компиляции) и ждете. Ваш компилятор выдает пятьдесят строк текста. Вы выбираете слова warning и error. Задумываетесь, значит ли это, что все в порядке. Вы ищите полученный исполняемый файл. Ничего. Черт возьми, думаете вы, я должен выяснить, что все это значит …

Типы ошибок компиляции

Во-первых, давайте различать типы ошибок. Большинство компиляторов покажет три типа предупреждений во время компиляции:

  • предупреждения компилятора;
  • ошибки компилятора;
  • ошибки компоновщика.

Хоть вы и не хотите игнорировать их, предупреждения компилятора не являются чем-то достаточно серьезным, чтобы не скомпилировать вашу программу. Прочитайте следующую статью, которая расскажет вам, почему стоит дружить с компилятором и его предупреждениями. Как правило, предупреждения компилятора — это признак того, что что-то может пойти не так во время выполнения. Как компилятор узнает об этом? Вы, должно быть делали типичные ошибки, о которых компилятор знает. Типичный пример — использование оператора присваивания = вместо оператора равенства == внутри выражения. Ваш компилятор также может предупредить вас об использовании переменных, которые не были инициализированы и других подобных ошибках. Как правило, вы можете установить уровень предупреждений вашего компилятора — я устанавливаю его на самый высокий уровень, так что предупреждения компилятора не превращаются в ошибки в выполняемой программе (“ошибки выполнения”).

Тем не менее, предупреждения компилятора не должны останавливать работу вашей программы (если только вы не укажете компилятору рассматривать предупреждения как ошибки), так что они, вероятно, не так серьезны как ошибки.

Ошибки — это условия, которые препятствуют завершению компиляции ваших файлов.

Ошибки компилятора ограничены отдельными файлами исходного кода и являются результатом “синтаксических ошибок”. На самом деле, это означает, что вы сделали что-то, что компилятор не может понять. Например, выражение for(;) синтаксически не правильно, потому что цикл всегда должен иметь три части. Хотя компилятор ожидал точку с запятой, он мог также ожидать условное выражение, поэтому сообщение об ошибке, которое вы получите может быть что-то вроде:

line 13, unexpected parenthesis ‘)’

Заметьте, что ошибки компилятора всегда будут включать номер строки, в которой была обнаружена ошибка.

Даже если вы прошли процесс компиляции успешно, вы можете столкнуться с ошибками компоновщика. Ошибки компоновщика, в отличие от ошибок компилятора, не имеют ничего общего с неправильным синтаксисом. Вместо этого, ошибки компоновщика — это, как правило, проблемы с поиском определения функций, структур, классов или глобальных переменных, которые были объявлены, но не определены, в файле исходного кода. Как правило, эти ошибки будут иметь вид:

could not find definition for X

Как правило, процесс компиляции начинается с серии ошибок компиляции и предупреждений и, исправив их, вы столкнетесь с ошибками компоновщика. В свою очередь, я бы сначала исправлял ошибки компиляции, а затем ошибки компоновщика.

Ошибки компилятора — с чего начать?

Если вы столкнулись с перечнем пятидесяти или шестидесяти ошибок и предупреждений, то будет сложно определить с чего начать. Самое лучшее место, тем не менее, в начале списка. В самом деле, вы почти никогда не начинаете исправлять ошибки от конца файла до его начала по одной простой причине: вы не знаете ошибки ли они на самом деле!

Одна ошибка в верхней части вашей программы может вызвать целый ряд других ошибок компилятора, потому что эти строки могут рассчитывать на что-то в начале программы, что компилятор не смог понять. Например, если вы объявляете переменную с неправильным синтаксисом, компилятор сообщит о синтаксических ошибках, и что он не может найти объявление для переменной. Точка с запятой, поставленные не в том месте, могут привести к огромному количеству ошибок. Это происходит, потому что синтаксис C и C++ синтаксис позволяет объявить тип сразу же после его определения:

struct 
{
   int x;
   int y;
} myStruct;

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

Что-то вроде этого:

struct MyStructType
{
   int x;
   int y;
}

int foo()
{}

может привести к огромному количеству ошибок, возможно, включая сообщения:

extraneous ‘int’ ignored

Все это из-за одного символа! Лучше всего начать с самого верха.

 Анализ сообщения об ошибке

Большинство сообщений от компилятора будет состоять как минимум из четырех вещей:

  1. тип сообщения — предупреждение или ошибка;
  2. исходный файл, в котором появилась ошибка;
  3. строка ошибки;
  4. краткое описание того, что работает неправильно.

Вывод g++ для указанной выше программы может выглядеть следующим образом (ваши результаты могут отличаться, если вы используете другой компилятор):

foo.cc:7: error: semicolon missing after struct declaration

foo.cc это имя файла. 7 — номер строки, и ясно, что это ошибка. Короткое сообщение здесь весьма полезно, поскольку оно показывает именно то, что не правильно. Заметим, однако, что сообщение имеет смысл только в контексте программы. Оно не сообщает, в какой структуре не хватает запятой.

Более непонятным является другое сообщение об ошибке из той же попытки компиляции:

extraneous ‘int’ ignored

Программист должен выяснить, почему это произошло. Обратите внимание еще раз, что эта ошибка была вызвана проблемой в начале программы, не в строке 8, а раньше, когда в структуре не хватает точки с запятой. К счастью, понятно, что определение функции для foo было в порядке, это говорит нам о том, что ошибка должна быть где-то в другом месте программы. На самом деле, она должна быть в программе раньше — вы не будете получать сообщение об ошибке, которое указывает на синтаксическую ошибку до строки, на которой ошибка на самом деле произошла.

Это руководящий принцип вычисления ошибок компилятора: если сомневаетесь, посмотрите в программе раньше. Так как синтаксические ошибки могут позже иметь серьезные последствия, вполне возможно, что компилятор указывал номер строки, в которой на самом деле не было синтаксической ошибки!

Будет гораздо хуже, если компилятор не будет сообщать вам, что произошло ранее в программе. Даже первая ошибка компилятора, которую вы получите, может быть связана с несколькими строками  до указанного предупреждения.

Обработка непонятных или странных сообщений

Есть несколько особенно сложных типов ошибок компилятора. Первый — это необъявленная переменная, которую, как вам кажется, вы объявили. Часто, вы можете указать, где именно переменная была объявлена! Проблема в том, что часто переменная просто написана с ошибкой. К сожалению, это довольно трудно увидеть, так как обычно мы читаем то, что ожидаем, а не то, что есть на самом деле. Кроме того, есть и другие причины, почему это может быть проблемой — например, проблемы с видимостью!

Чтобы разобраться в возможных проблемах, я делаю так: в строке, где находится якобы необъявленная переменная, надо выполнить поиск текстовым редактором слова под курсором (в качестве альтернативы можно скопировать имя переменной и выполнить поиск), и если я записал его неправильно, оно не найдется. Также не надо вводить имя переменной вручную, так как вы случайно можете ввести его правильно.

Второе непонятное сообщение:

unexpected end of file

Что происходит? Почему конец файла будет «неожиданным» ? Ну, здесь главное думать как компилятор; если конец файла является неожиданным, то он,  должно быть, чего-то ждет. Что бы это могло быть? Ответ, как правило, «завершение». Например, закрывающие фигурные скобки или закрывающие кавычки. Хороший текстовый редактор, который выполняет подсветку синтаксиса и автоматический отступ, должен помочь исправить некоторые из этих ошибок, что позволяет легче обнаружить проблемы при написании кода.

В конечном счете, если сообщение непонятное, то подходите к проблеме, думая, как компилятор пытается интерпретировать файл. Это может быть трудно, когда вы только начинаете, но если вы обращаете внимание на сообщения и попробуете понять, что они могли бы означать, вы быстро привыкнете к общим закономерностям.

Наконец, если ничего не работает, вы всегда можете просто переписать несколько строк кода, чтобы убрать любые скрытые синтаксические ошибки, которые вы могли не увидеть. Это может быть опасно, так как вы можете переписать не ту секцию, но это может помочь.

Ошибки компоновщика

После того как вы окончательно исправили все ошибки синтаксиса, вздремнули, перекусили пару раз и морально подготовили себя к правильной компиляции программы, вы все равно можете столкнуться с ошибками компоновщика. Их часто довольно сложно исправить, потому что они не обязательно являются результатом того, что написано в вашей программе. Я вкратце опишу типичные видов ошибок компоновщика, которые можно ожидать, и некоторые пути их решения.

У вас могут возникнуть проблемы с тем, как вы настроили свой компилятор. Например, даже если включить нужные заголовочные файлы для всех ваших функций, вы все равно должны предоставить вашему компоновщику правильный путь в библиотеку, которая имеет фактическую реализацию. В противном случае, вы получите сообщение об ошибке:

undefined function

Обратите внимание на поддержку этих функций компилятором (это может произойти, если вы включите собственное объявление функции, чтобы обойти ошибку во время компиляции). Если ваш компилятор поддерживает эту функцию, то для решения проблемы обычно требуются конкретные настройки компилятора. Вам следует сообщить компилятору, где искать библиотеки и убедиться, что библиотеки были установлены правильно.

Ошибки компоновщика могут произойти в функциях, которые вы объявили и определили, если вы не включили все необходимые объектные файлы в процесс связывания. Например, если вы пишете определение класса в myClass.cpp, а ваша основная функция в myMain.cpp, компилятор создаст два объектных файла, myClass.o и myMain.o, а компоновщику будут нужны оба из них для завершения создания новой программы. Если оставить myClass.o, то у него не будет определения класса, даже если вы правильно включите myClass.h!

Иногда появляются незначительные ошибки, когда компоновщик сообщает о более чем одном определении для класса, функции или переменной. Эта проблема может появиться по нескольким причинам: во-первых, у объекта может быть два определения — например, две глобальные переменные объявлены как внешние переменные, чтобы быть доступными за пределами файла исходного кода. Это относится как к функциям, так и к переменным, и это, на самом деле, нередко случается. С другой стороны, иногда это проблема с директивами компоновщика; несколько раз я видел, как люди включают несколько копий одного и того же объектного файла в процесс связывания. И бинго, у вас есть несколько определений. Типичным проявлением этой проблемы является то, что у целого ряда функций есть несколько определений.

Последний странный тип ошибки компоновщика — сообщение

undefined reference to main

Данная ошибка компоновщика отличается от других тем, что она может не иметь ничего общего с объектом, включая файлы или правильные пути к вашей библиотеке. Напротив, это означает, что компоновщик пытался создать исполняемый файл и не смог понять, где расположена функция main(). Это может случиться, если вы забыли включить основную функцию, или, если вы попытаетесь скомпилировать код, который никогда не был отдельным исполняемым файлом (например, если вы попытались скомпилировать библиотеку).

Добавить комментарий