Как исправить Visual Studio 2019 от перестройки только одного файла в моем проекте C ++ при запуске - PullRequest
0 голосов
/ 29 апреля 2020

Когда я запускаю свой проект в C ++, Visual Studio перестраивает только файл с методом main, но когда я обновляю код в другом файле, никаких изменений не происходит. Однако когда я вручную перестраиваю программу в Visual Studio, все файлы перестраиваются. Чтобы попытаться это исправить, я попытался удалить скрытое расширение .vs в проекте, но безрезультатно. Я также попытался перезагрузить мою систему и программу, но, похоже, ничего не работает. Я также пытался запустить новый проект, но эта проблема все еще сохраняется.

Например, это мой код для моего первого файла:

#include <iostream>
#include "Source.cpp"

int main()
{
    TESTING tst = TESTING();
}

Тогда это мой код для второго файла:

#include <iostream>

using namespace std;

struct TESTING{

    TESTING() {
        cout << "test" << endl;
    }
};

Код печатает тест в этой ситуации.

Но если я изменю cout << "test" << endl на что-то другое, он продолжит печать теста, когда я перезапущу его пока я не перестрою проект вручную. </p>

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Как исправить Visual Studio 2019 от перестройки только одного файла в моем проекте C ++ при запуске

На самом деле , у меня та же ошибка, что и у вас сказал. Когда я просто вносю некоторые изменения в файл source.cpp (изменяю test на любые другие или определяю некоторые переменные, а затем изменяю его), новые изменения не будут применяться, хотя он встроит новые изменения в выходной файл.

Помимо , когда я отлаживаю этот проект, я сталкиваюсь с таким предупреждением:

enter image description here

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

enter image description here

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

Поэтому , это проблема в проектах VS C ++. И эта похожая проблема уже отражает эту проблему. И команда изучает эту проблему.

Чтобы помочь вам и привлечь больше внимания, Я сообщил об этой проблеме на форуме D C. Вы можете видеть эта ссылка . Вы можете проголосовать за эту проблему и добавить любой комментарий, если я не буду адекватно описывать эту проблему. Любой, кто интересуется этим вопросом, проголосует за него, чтобы привлечь внимание Microsoft.

0 голосов
/ 29 апреля 2020

Вы должны проверить, что ваши файлы, которые не скомпилированы, указаны в файле project.vcxproj (их, вероятно, нет). Это в точности как зависимости в Makefile; если зависимость не записана, сборка не будет компилировать файлы после их обновления.

Более конкретно, их следует упомянуть следующим образом:

<ClCompile Include="mysource1.cpp" />
<ClCompile Include="mysource2.cpp" />
<ClInclude Include="mysource1.h" />
<ClInclude Include="mysource2.h" />

Таким образом, это не является исправлением в VS , но в вашей конфигурации.

...