Я довольно новичок в C ++. Я пытаюсь использовать VS2015 и библиотеку lp_solve (https://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.5/), чтобы решить мою проблему линейного эквалайзера (для точного расстояния Громова-Хаусдорфа, см. https://mediatum.ub.tum.de/doc/1231885/1231885.pdf раздел 3.1 и 3.3). Моя машина — система x64. Вот что я сделал:
Вот что я заявляю в своем коде:
#include "lp_lib.h"
#pragma comment(lib, "liblpsolve55.lib") // static
#pragma comment(lib, "liblpsolve55d.lib") // static for debug
Хотя, когда я запускаю код с x86, он покажет следующие проблемы:
Хотя, когда я переключаю бегун с x64:
в файле lp_lib.h он содержит строки:
#if (LoadInverseLib == TRUE) || (LoadLanguageLib == TRUE)
#ifdef WIN32
#include <windows.h>
#else
#include <dlfcn.h>
#endif
#endif
Я также пытаюсь использовать пакет 32-битной версии (lp_solve_5.5.2.5_dev_win32.zip), но он также не работает.
Я последовательно собираю и запускаю демонстрацию на моем Mac с соответствующим пакетом (lp_solve_5.5.2.5_dev_osx32.tar.gz). Но я все еще хочу знать, как собрать и запустить его в VS2015.
Здесь я скажу, что я делаю в Mac, если кому-то это нужно (используя Xcode).
Спасибо большое, на самом деле никто не отвечает на этот вопрос 🙂 Но я сам решил проблему. Вот что я делаю для VS2015:
используйте пакет lp_solve_5.5.2.5_dev_win32.zip
добавьте .h файл и .lib, как указано выше
измените библиотеку запуска через свойства -> C / C ++ -> генерация кода -> библиотека запуска -> измените DLL (/ MDd) на (/ MTd)
если у вас все еще есть проблемы с fprintf, перейдите в свойства -> компоновщик -> ввод -> дополнительные зависимости и добавьте: legacy_stdio_definitions.lib
Это будет хорошо. Это может быть какой-то проблемой перевода, да, я использую китайскую версию VS …
Задача ещё не решена.
Других решений пока нет …