Я заблудился в библиотеках boost (в частности, boost_program_options) - PullRequest
1 голос
/ 27 сентября 2011

Привет всем, что я весь день бьюсь головой об стену.

Итак, я хочу перенести свою программу на университетский суперкомпьютер, но он не имеет наддува (и я использовал опцию boost program_optionsв моем коде).На моем компьютере у меня просто есть -lboost_program_options, и это прекрасно работает, но, очевидно, больше не будет работать.

Итак, мне нужно упаковать необходимые вещи вместе с моим кодом, чтобы он компилировался на суперкомпьютереиспользуя intel icpc)

Моим первым препятствием была компиляция строки в моем make-файле, в которой был код, который хотел включить заголовок boost, но я запустил в своей папке с кодом следующее:

bcp --scan --boost=/usr/include/ main.cpp destination_folder/

И поместите полученные файлы в мой каталог include.который решил это.

Опции программы Boost, к сожалению, не являются пакетом только для заголовков, поэтому мне нужно что-то еще.Мне нужно получить библиотеку или что-то.Потому что я получаю ошибки, когда компилятор достигает последней задачи в моем make-файле (делает все объектные файлы)

В своих путешествиях я нашел этот вопрос:

extractin / building boost program_options

Я попробовал то, что предлагает ответ, но добавление «build» в мою команду не приводит к созданию дополнительных файлов ...

Теперь застрял, не знаю, какполучить эту библиотеку вещь.Я прочитал так много всего на bjam, у меня кружится голова, просто у меня нет уровня понимания, чтобы все это обрабатывать в голове.

ОС: Linux для обеих систем

Ответы [ 3 ]

2 голосов
/ 27 сентября 2011

Один из вариантов - создать буст на этой машине. Установите его у себя дома. Измените ваши CXXFLAGS и LDDFLAGS, чтобы они указывали на правильный заголовок и каталоги библиотеки и создавали там свой код. Другим вариантом является кросс-компиляция обоих на вашем ПК (если у вас есть такой кросс-инструментарий). Статически свяжите свой код для повышения и перенесите финальный двоичный файл на суперкомпьютер.

1 голос
/ 27 сентября 2011

Вместо построения Boost.ProgramOptions вы можете включить и скомпилировать все его .cpp файлы в вашем проекте.

1 голос
/ 27 сентября 2011

Поскольку обе системы Linux, вам просто нужно использовать двоичные файлы. Если обе системы работают на одном и том же процессоре, просто статически скомпилируйте вашу программу. Если нет, загрузите пакет debian для архитектуры, на которой работает ваш суперкомпьютер, и извлеките из него заголовки и двоичные файлы.

Я собрал boost от bjam для кросс-компиляции в windows, и если когда-либо была причина использовать автоинструментальные средства в проекте, это беспорядок boost и bjam. Избегайте этого, если это возможно, и попытайтесь адаптировать исходный код пакета Debian, если вы не можете.

...