Я пытаюсь решить линейные системы уравнений с pardiso. Я загрузил с веб-сайта все, что мне может понадобиться (три файла: .lib, .dll и .exp).
Я знаю, что такое dll и lib, и ничего не знаю о .exp. Более того, я ищу в Интернете и выясняю, что мне нужен заголовочный файл. Но pardiso не предоставляет мне .h файл.
Более того, pardiso приводит несколько примеров, среди которых я хочу использовать http://www.pardiso-project.org/manual/pardiso_unsym.cpp.
Теперь приходит моя проблема. Как использовать файлы .lib / .dll / .exp в VC ++ 2015 без заголовочного файла? Я знаю, что есть два способа загрузки DLL-файла: динамически и статически, но я не знаю, как реализовать.
Может быть, моя проблема довольно проста, потому что я не знаю много о C / C ++ и DLL. Пожалуйста, помогите мне.
Спасибо вам большое!
Я не загружал пакет сам, но, поверьте, в нем нет заголовочных файлов (похоже, из примера, на который вы ссылались).
Во-первых, не включая заголовочные файлы очень странно способ распространения библиотеки.
Глядя через Pardiso инструкция, кажется, что они на самом деле публикуют интерфейсы функций там. Итак, как бы вы его использовали, это создайте файл заголовка самостоятельно, воссоздав прототипы функций на основе информации из этого PDF. См., Например, страницу 7 руководства, в которой перечислены два вызова функций:
/* Check license of the solver and initialize the solver */
pardisoinit(pt, &mtype, &solver, iparm, dparm, &error);
/* Solve matrix sytem */
pardiso(pt, &maxfct, &mnum, &mtype, &phase, &n, a, ia, ja,
perm, &nrhs, iparm, &msglvl, b, x, &error, dparm);
В предыдущих и последующих разделах этого PDF приведены прототипы Fortran для этих функций, а их аргументы описаны в тексте. Исходя из этой информации, вам придется реконструировать прототип.
Альтернативным источником этих прототипов могут служить примеры, предоставленные Pardiso, которые, по-видимому, содержат непосредственно прототипы. Это зависит от вас, чтобы убедиться, что копирование их будет в порядке лицензии.
Почему они делают это таким образом, мне не понятно, но, похоже, так оно и есть.
Чтобы ответить на .exp
вопрос файла: это в основном похоже на .lib
файл в том, что он указывает, какие символы экспортируются из .dll
, Это может быть безопасно проигнорировано в обычных ситуациях. Вам нужно будет использовать только один, если у вас есть два двоичных файла (DLL или EXE), которые связаны друг с другом по кругу.
Просто свяжите .lib с вашим проектом VS и скопируйте .dll в ваше местоположение .exe (или местоположение проекта, если вы можете отладить с помощью Visual Studio), и вы можете настроить проект без файлов .h (только в определенном случае Pardiso).