Как исправить проблему с решением с несколькими репозиториями в сообществе Visual Studio 2022C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить проблему с решением с несколькими репозиториями в сообществе Visual Studio 2022

Сообщение Anonymous »


У меня есть следующая структура моего тестового решения:

TestApp (решение) ├─ TestApp (проект) ├─ Субмодули ├─ TestLib (решение) ├─ TestLib (проект) ├─ сторонняя_сторона | ├─ включать | ├─ Нломанн ├─ пч.х ├─ TString.h ├─ TargetEntity.h nlohmann — это библиотека JSON. TestLib — это статическая библиотека, включенная в TestApp в качестве ссылки. TestLib — это подмодуль git внутри репозитория TestApp. TestApp также имеет следующие пути в дополнительных каталогах включения:

$(SolutionDir)Submodules\TestLib\TestLib\3rd_party\include; $(SolutionDir)Субмодули\TestLib\; %(ДополнительныеIncludeDirectories) Вот полный код:
TestApp
main.cpp:

#include "TestLib/TargetEntity.h" #include "TestLib/TString.h" //#include "nlohmann/json.hpp" интервал основной() { //nlohmann::json json; //json["abc"] = 765; TargetEntity тэ; ТСтрока тс; } Библиотека тестов
pch.h:

#ifndef PCH_H #define PCH_H #define WIN32_LEAN_AND_MEAN #include "TString.h" //#include "nlohmann/json.hpp" #endif // PCH_H pch.cpp:

#include "pch.h" TString.h:

#pragma раз #include используя TString = std::wstring; TargetEntity.h:

#pragma раз //#include "TString.h" // Раскомментируйте, чтобы избавиться от ошибки //#include "nlohmann/json.hpp" // Раскомментируйте, чтобы избавиться от ошибки класс TargetEntity { публика: виртуальный ~TargetEntity() = по умолчанию; //void InitializeFromJson(const nlohmann::json& json) {} защищено: TString URL-адрес; }; TargetEntity.cpp:

#include "pch.h" #include "TargetEntity.h" TestLib отлично компилируется как отдельное решение и при компиляции как проект внутри TestApp (я имею в виду, когда вы компилируете только библиотеку). Но когда я пытаюсь скомпилировать TestApp, VS показывает ошибки внутри TargetEntity:

Сборка началась... 1>------ Сборка начата: Проект: TestLib, Конфигурация: Отладка x64 ------ 1>pch.cpp 1>TargetEntity.cpp 1>TestLib.vcxproj -> ...\Temp\TestApp\Build-TestLib-x64-Debug\TestLib.lib 2>------ Сборка началась: Проект: TestApp, Конфигурация: Отладка x64 ------ 2>TestApp.cpp 2>...\Temp\TestApp\Submodules\TestLib\TestLib\TargetEntity.h(13,13): ошибка C3646: 'url': неизвестный спецификатор переопределения 2>...\Temp\TestApp\Submodules\TestLib\TestLib\TargetEntity.h(13,16): ошибка C4430: отсутствует спецификатор типа — предполагается int. Примечание. C++ не поддерживает default-int. 2>Завершено создание проекта «TestApp.vcxproj» — ОШИБКА. Итак, похоже, что VS каким-то образом игнорирует предварительно скомпилированный заголовок для TestLib во время компиляции TestApp. Я знаю, что multi-repo — это функция предварительной версии, но мой сценарий кажется мне «очевидным», возможно, кто-то знает, как решить эту проблему.

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

ОБНОВЛЕНИЕ: Я добавил полный код и полный вывод сборки. Для простоты я также прокомментировал код, связанный с nlohmann — проблема осталась.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как решить Winnt.h E0338 в сообществе Visual Studio 2022 [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как решить Winnt.h E0338 в сообществе Visual Studio 2022 [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как добавить растровые изображения в мой проект в сообществе Visual Studio (после обновления от июня 2024 г.)
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как добавить растровые изображения в мой проект в сообществе Visual Studio (после обновления от июня 2024 г.)
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как интегрировать Sonarqube с решением Visual Studio
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»