Компиляция C ++ с поддержкой всех дистрибутивов Linux - PullRequest
1 голос
/ 19 ноября 2011

Каков наилучший способ компиляции для всех дистрибутивов с boost? Я прочитал много статей, но не могу понять, как это сделать. Я использую блоки кода, и моя программа работает в системе, в которой я ее собираю, но не в других дистрибутивах. Я просто получаю ошибку сегментации (сбрасывается ядро). Я новичок в Linux C ++. ниже включены те, которые я использую. Мне нужно сделать make-файл? Который я не знаю, как сделать и установить в каждом дистрибутиве. В основном это лучший способ распространения программы и ее скрытия. Заранее спасибо

#include <cstdlib>
#include <iostream>
#include <ostream>
#include <fstream>
#include <string>
#include <vector>
#include <sstream>
#include <boost/regex/v4/regex.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/algorithm/string.hpp>
#include <iterator>
#include <map>
#include <stdexcept>
#include <boost/lexical_cast.hpp>

1 Ответ

0 голосов
/ 06 декабря 2011

В принципе, есть 2 способа сделать это.Статически и динамически.Вы можете либо связать все статически, и все будет хорошо, если вы будете немного расточительны с ресурсами.Или вы можете динамически связываться с конкретным libboost-regex.so.41.2.2 или любой другой текущей версией.В последнем случае вы, вероятно, захотите включить версию, которую вы используете, добавив префикс ldd с LD_LIBRARY_PATH.

Я знаю, что это несколько высокий уровень.Чтобы быть более конкретным, мне нужно больше деталей.Что говорит ldd your-program (то, что вы запускаете)?Скорее всего, проблема в том, что повышение немного отличается в схеме со-версиями от обычной схемы «мы только разбиваем ABI-on-the-first-version-number».Если у вас есть какой-то файл сборки (я не знаю блоков кода), это тоже было бы неплохо увидеть.

...