2013-02-27 1 views
0

Я пытаюсь использовать библиотеку Quadprog ++ (http://quadprog.sourceforge.net/). Однако я не понимаю инструкции.Получение библиотеки для работы (QuadProg ++)

Чтобы построить библиотеку, просто перейдите через ./configure; делать; сделать установка цикл.

Для его использования вам потребуется включить в свой файл кода заголовок «Array.hh», который содержит удобную реализацию на C++ Vector and Matrices.

Есть некоторые файлы «configure» и «MakeFile», но у них нет расширения, и я понятия не имею, что с ними делать. В папке также есть некоторые расширения «.am», «.in» и «.ac».

Это знакомо кому-нибудь? Что мне делать с этим?

(Edit:. В Windows)

ответ

2

Этот пакет построен с использованием autotools. Эти файлы, с которыми вы разговариваете (* .am, * .in ...), из-за инструментов automake и autoconf.

Autotools является стандартом де-факто в мире GNU/Linux. Не все используют его, но если вы облегчите работу менеджеров пакетов и дистрибутивов. На самом деле они должны быть переносимыми в любую систему POSIX.

Это говорит о том, что вы используете не-unix-машину, такую ​​как Windows, поэтому скрипт configure напрямую не работает в вашей системе. Если вы настаиваете на том, чтобы использовать Windows, с которыми вы, вероятно, будете работать, ваши варианты:

  1. Используйте MinGW и MSYS, чтобы получить минимальную среду сборки, совместимую с autotools.
  2. Используйте Cygwin и создайте среду POSIX в вашей Windows.
  3. Создайте проект VS, добавьте туда весь источник библиотеки, скомпилируйте и отлаживайте ошибки, которые они могут возникнуть, как если бы код был написан вами.
  4. Поиск того, кто уже выполнил работу и распространяет двоичную DLL или аналогичную.
  5. (Мой фаворит!) Получите машину Linux, установите среду кросс-компилятора для создания двоичных файлов Windows и выполните configure --host i686-mingw32 ; make.
+0

Спасибо за ваш замечательный ответ! Я думаю, что я собираюсь «6. Ищите другую библиотеку», но спасибо за все ваши предложения! – Tessa

+1

@Tessa: На самом деле, эта библиотека представляет собой всего два файла .CC и два файла .HH. Вы можете просто добавить их в свое текущее решение, и оно должно просто работать. Нет DLL, нет библиотек, нет Makefile! – rodrigo

+0

Спасибо! У меня все получилось! – Tessa

1

Эта инструкция, как говорят, может быть построить программу поставляется как тарболла в Linux. Чтобы понять, посмотрите на Why always ./configure; make; make install; as 3 separate steps?.

+0

Извините за возможный глупый вопрос, но означает ли это, что я не могу использовать его в окнах? – Tessa

1

Это может ввести в заблуждение сначала, но здесь вы идете. Введите их, как показано ниже:

cd <the_directory_with_the_configure_file> 
./configure 

На данный момент на экране прокручивается куча вещей. Это Autoconf работает (для более подробной информации см http://www.edwardrosten.com/code/autoconf/index.html)

Когда это сделано, тип:

make 

Это инициирует процесс сборки.(Чтобы узнать больше о GNU make, ознакомьтесь с Comprehensive gnu make/gcc tutorial). Это приведет к печати нескольких сообщений о построении.

Когда это будет сделано, тип:

sudo make install 

Вам будет предложено ввести пароль суперпользователя. Если это не ваша собственная машина (или у вас нет доступа суперпользователя), обратитесь к человеку, который управляет этим компьютером.

Если это ваш компьютер, введите пароль root и библиотеку следует установить в/usr/local/lib/или что-то подобное (внимательно посмотрите экран, чтобы увидеть, где он помещает файл .so).

Остальное (включая файл .hh) кажется само собой разумеющимся.

Надеюсь, что это поможет!

+0

Спасибо! К настоящему моменту я узнал, что работает только в Linux (пока я использую Windows), но это действительно приятные пошаговые инструкции! – Tessa

+0

Ха! Извините, я понятия не имел, что вы пытаетесь создать его внутри Windows. Насколько критичен QuadProg ++ для того, что вы пытаетесь сделать? Можете ли вы использовать другую библиотеку квадратного программирования? Если нет, можете ли вы заставить Linux работать? Кажется, я задаю больше вопросов, чем предоставление ответов, но моя цель - выяснить, сколько усилий вы * готовы внести в создание quadprog ++ для Windows. –

+0

Quadprog ++ компилируется и отлично работает под Windows, и он не нуждается в цепочке makefile. Просто скомпилируйте файлы напрямую, например. g ++ -O -o myquadprog main.cc QuadProg ++. cc Array.cc с помощью MinGW или MS visual studio .. Я не знаю, почему люди добавляют сложность в простые вещи .. – Antonello