Я использую libxl на linux. Сейчас поставили задачу запустить ее на win7. Как это сделать на этой шайтан машине? Make там нет, а visual studio только обновляется и не может найти .h файлы.
Millerish, Если собирать под MSVSC то проще всего создать проект, добавить туда необходимые исходники и собрать в IDE. Кстати в комплекте MSVC есть nmake - это такой не до make, но для не очень навороченной сборки вполне пригоден.
Если поставить msys2 и туда комплект для сборки gcc, make и т.п., то должно собраться и вашим набором без изменений.
В обоих случаях соберется при условии, что в библиотеке не используется каких-то платформо зависимых средств. Например, если использовать только стандартную библиотеку, то собирается без проблем.
Возможно, понадобиться определить DllMain().
Одинаково примерно: в MSVC нужно с нуля создать и настроить проект, примерно как написал al_sh
В msys2/mingw - нужно установить среду и все что нужно для сборки.
Но вариант с MSVC - это будет отдельный проект, который нужно будет отдельно поддерживать.
В msys2/mingw - скорее всего можно будет использовать ваш вариант сборки без изменений.
Но под винду компилятор MSVC дает лучший код и не зависит от библиотек mingw.
res2001, Я добавил https://github.com/StekolschikovV/dart_libxl_win дополнительные каталоги включаемых файлов, дополнительные каталоги дополнительные каталоги библиотек, дополнительные зависимости. Все верно? Что дальше нужно сделать?
Значит вы не правильно настроили проект.
По умолчанию в MSVC собирается исполняемый файл, а не библиотека.
Необходимо указать, что нужно собирать dll: Project->Properties->General->Configuration type
А ссылку на библиотеку нужно убрать - очевидно, что она не может ссылаться на саму себя.
res2001, я обновил проект и положи вместо libxl.dll libxl.lib и смог собрать .dll. Правда теперь при подключении dart говорит говорит про нативную ошибку.
Millerish, обычно exe или dll выбирается еще на этапе создания проекта - можно выбрать нужный шаблон проекта (для dll) и там будут установлены необходимые опции, вам останется только добавить исходники в проект.
res2001, Подключение происходит так import 'dart-ext:c/libxl_ext';. Ошибка: "Native extension path must be absolute.error: library handler failed". https://github.com/StekolschikovV/dart_libxl2/blob... . Я также пробовал указывать такие пути .\c\libxl_ext.dll, ./c/libxl_ext.dll, c/libxl_ext.dll, c/libxl_ext.
в визуалнике :
проект->свойства->С/С++->общие->дополнительные каталоги включаемых файлов - добавить папку с хедерами.
проект->свойства->компановщик>общие->дополнительные каталоги дополнительные каталоги библиотек - добавить папку с либами.
проект->свойства->компановщик>ввод->дополнительные зависимости - добавить сами либы