На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
  
> Как статически подключить скачанную библиотеку XLNT в Cmake+VS2017
    Здравствуйте!

    Подскажите пожалуйста по поводу подключения скаченной библиотеки xlnt к своему проекту под windows:

    1)Скачал библиотеку xlnt для работы с екселем -https://github.com/tfussell/xlnt.
    2)Скачал Cmake, установил.
    3)В корневой папке скаченной библиотеки запустил bat-файл(любезно подсказал "_Bers", файл во вложении), который видимо запускает Cmake.
    Прикреплённый файлПрикреплённый файлbuild32.rar (577 байт, скачиваний: 175)
    4)После работы bat-файла появляется папка Build32 в которой уже находится видимо готовый проект с самим решением xlnt_all и Файлами статической библиотеки .lib в папках debug и release.
    5)После чего в Visual Studio создаю новый пустой проект, копирую в него код пример для проверки работы библиотеки xlnt:
    ExpandedWrap disabled
      #include <xlnt/xlnt.hpp>
       
      int main()
      {
          xlnt::workbook wb;
          xlnt::worksheet ws = wb.active_sheet();
          ws.cell("A1").value(5);
          ws.cell("B2").value("string data");
          ws.cell("C3").formula("=RAND()");
          ws.merge_cells("C3:C4");
          ws.freeze_panes("B2");
          wb.save("example.xlsx");
          return 0;
      }

    Так же в проекте указал путь к .lib-файлу: ...\build32\source\Release\xlnt.lib
    [attach=#2][/attach]

    И запускаю его, но появляются ошибки:
    [attach=#1][/attach]

    Подскажите пожалуйста, что не так делаю ?

    Добавлено
    Так же в проекте указал путь к .lib-файлу: ...\build32\source\Release\xlnt.lib
    [attach=#0][/attach]
    Сообщение отредактировано: Qraizer -
      Скрин ошибки:
      Прикреплённая картинка
      Прикреплённая картинка
      Сообщение отредактировано: Optimus11 -
          Спасибо, я читал это, но к сожалению так и не понял в чем проблема и как ее можно исправить.
            Конфигурация приложения не совпадает с конфигурацией подключённой библиотеки. При динамической RTL это критично, т.к. приложение с связывается отладочной версией, а библиотека хочет релизную.
              Спасибо за ответ!

              1)Но ведь в свойствах проекта я указал путь именно к релизной версии .lib файла :...\build32\source\Release\xlnt.lib
              2)Попытался просто заменить отладочный файл xlntd.lib лежащий в папке ...\build32\source\Debug\xlnt.lib на релизный .lib из п.1, но все равно - выскакивает таже ошибка :(
                3)А вот если наоборот, то есть заменить релизный .lib отладочным, то ошибки больше не возникают, но и желаемого результата тоже нет, просто появляется консоль и все:
                Прикреплённая картинка
                Прикреплённая картинка

                4)Если посмотреть пошаговое выполнение, то там почему то куча сообшение, что невозможно открыть какие то windows`кие dll`ки:
                Прикреплённая картинка
                Прикреплённая картинка


                Подскажите пожалуйста, как это все можно исправить ?
                Сообщение отредактировано: Optimus11 -
                  Цитата Optimus11 @
                  3)А вот если наоборот, то есть заменить релизный .lib отладочным, то ошибки больше не возникают, ...
                  Зачем такие костыли?? Подключай ту lib-у, конфигурация которой совпадает. Отладочная конфигурация, значит отладочная либа.
                  Цитата Optimus11 @
                  3)... но и желаемого результата тоже нет, просто появляется консоль и все:
                  А каков он должен быть? Судя по main(), где-то, подозреваю, что в Твоих Документах, создаётся эксельный файлик. Ничего про вывод на консоль я там не вижу.
                  Цитата Optimus11 @
                  4)Если посмотреть пошаговое выполнение, то там почему то куча сообшение, что невозможно открыть какие то windows`кие dll`ки
                  ...
                  Это не dll-ки. Если б dll-ки, вообще бы не запустилось. Это отладочные символы для виндовых dll. Они тебе и не нужны, ты ж не собираешься их отлаживать.
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0717 ]   [ 22 queries used ]   [ Generated: 28.03.24, 08:48 GMT ]