Настройка NLOpt при работе из командной строки Windows cmd

Я пишу программу на C++ из командной строки windows cmd и компилирую с помощью mingw (g++). Эта программа нуждается в нелинейном оптимизаторе, и NLOpt выглядит хорошим выбором. Я изучил C++ для курса Uni, поэтому среда, которую я использовал, уже была настроена, у меня нет опыта в настройке библиотек и т. Д.

До сих пор мои шаги были;

  1. Загрузите предварительно скомпилированные библиотеки DLL для 64-битных окон (вот что я запускаю) отсюда.

  2. Запустите команду dlltool --input-def libnlopt-0.def --dllname libnlopt-0.dll --output-lib libnlopt-0.lib (с той же страницы), который работал без ошибок.

Это создает файл.hpp, однако, когда я пытаюсь #include файл, который я получаю

In file included from optimiseDogs.cc:9:0:
C:\Files|Development\NLOpt2.4.2\nlopt.hpp:29:19: fatal error: nlopt.h: Nosuch file or directory
#include <nlopt.h>

nlopt.h а также nlopt.hpp находятся в одном каталоге друг с другом. Моя программа находится в другой папке. изображение настройки папки

Это, наверное, очень просто, извините, что беспокою вас. Возможно, я не совсем одинок в своем невежестве, и это поможет кому-то еще. Кроме того, я видел этот вопрос, но он касается установки на Visual Basic, и я не использую графический интерфейс, просто notepad++ и приглашение cmd.

Спасибо за помощь.

1 ответ

Решение

Если вы находитесь в windows и используя mingw: скачанный zip архив уже содержит .dll а также .lib файлы. Так что вам не нужно бежать dlltool который создает эти .lib,.dll от .def, Я думаю, что ваша проблема компиляции команды с помощью g++ добавление директив include и path к библиотекам.

C:\Files\Development\NLOpt2.4.2>g++ <path_of_source>.cc -o program.exe -L. -lnlopt -lm -I. -I<path_of_your_headers>

В прошлом я считал, что -I а также -L может иметь значение, поэтому попробуйте изменить, если не работает. Пожалуйста, посмотрите этот параграф и этот параграф, чтобы понять концепцию.

Другие вопросы по тегам