Использование pugixml и OpenXLSX в одном проекте приводит к ошибке компоновщика.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Использование pugixml и OpenXLSX в одном проекте приводит к ошибке компоновщика.

Сообщение Anonymous »

У меня есть проект CMake&C++, в котором я подготовил сокращенную оболочку для pugixml. Затем эта оболочка связывается с моей библиотекой io.lib и прекрасно работает как в Ubuntu-22.04, так и в Windows-latest.
Затем я добавил Библиотека OpenXLSX позволяет читать/записывать файлы Excel *.xlsx.
Проблема (по крайней мере, я думаю, что это проблема?) заключается в том, что согласно файл readme OpenXLSX, OpenXLSX также использует pugixml. Это приводит к ошибке компоновщика на компьютере с Windows:

Код: Выделить всё

2024-05-22T09:13:31.4230545Z pugixml.lib(pugixml.obj) : error LNK2005: "private: struct pugi::xml_node_struct * __cdecl pugi::xml_text::_data(void)const " (?_data@xml_text@pugi@@AEBAPEAUxml_node_struct@2@XZ) already defined in OpenXLSX.lib(XLCellValue.obj) [D:\a\wingdesigner\wingdesigner\build\apps\wingdesigner.vcxproj]
хотя он все еще успешно компилируется в Ubuntu-22.04.
Мой корневой файл CMakeLists.txt использует CPM для включения обоих библиотеки

Код: Выделить всё

include(cmake/CPM.cmake)
CPMAddPackage("gh:troldal/OpenXLSX#ededa1e8398305d0983648d3e9f120ff7e228d2b")
CPMAddPackage("gh:zeux/[email protected]")
и моя библиотека io использует оба, поэтому io/CMakeLists.txt связывает оба с целью:

Код: Выделить всё

target_link_libraries(io PUBLIC pugixml spdlog::spdlog Eigen3::Eigen OpenXLSX::OpenXLSX)
Есть ли элегантный способ решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/785 ... nker-error
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как правильно добавить внешнюю библиотеку Cmake (OpenXLSX) в проект QT Creator QML?
    Anonymous » » в форуме C++
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Использование vcpkg с Visual Studio 2022 приводит к фиктивной неразрешенной ошибке компоновщика внешних символов.
    Anonymous » » в форуме C++
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • PugiXML: невозможно перебирать одноуровневые элементы! Загружается только первый
    Anonymous » » в форуме C++
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как добавить атрибут без значения с Pugixml?
    Anonymous » » в форуме Html
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как добавить атрибут без значения с Pugixml?
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

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