Скомпилировать с недавним gcc на RedHat6: Как распространять программное обеспечение?

Использование printf:

$ printf '%.2x\n' {0..255}

Строка формата %.2x говорит, что нужно отформатировать вывод как заполненное нулями двузначное шестнадцатеричное число в нижнем регистре (%02x сделал бы то же самое).

Если вам нужен верхний регистр, используйте %.2X.

Bash понимает только диапазоны целых чисел по основанию 10 или диапазоны между символами ASCII в скобочных расширениях интервалов.

1
17.08.2017, 18:05
1 ответ

Куда мне установить эти новые файлы библиотек C и C++ в целевой системе? (Очевидно, что не в /usr/lib, где они могут мешать библиотекам по умолчанию!)

Наоборот, вы должны установить эти новые библиотеки в /usr/lib/(или что-то другое по умолчанию на целевой системы; в моем Debian они вошли бы в /usr/lib/x86_64-linux-gnu/и /lib/x86_64-linux-gnu/). Вам нужно позаботиться о rpath-s.

Мое программное обеспечение является общим объектом. Думаю, я могу статически связать библиотеку C++?

Это, вероятно, не будет работать для общего объекта(но может работать для исполняемого файла; тогда вы должны статически связать libstdc++и динамически libc.so. Однако общий объект можно связать с другими общими библиотеками. Обратите внимание, что если вы предоставляете библиотеку C++11, вашим пользователям потребуется компилятор C++11 (если только вы не спроектируете очень тщательносвою библиотеку так, чтобы она имела только C-совместимый API).

Возможно, вы отправите несколько файлов заголовков и воспользуетесь преимуществами pkg-config, поэтому отправьте соответствующий файл .pc.

Рекомендуем прочитать Program Library HowTo, C++ dlopen mini HowToи документ ДреппераHow To Write a Shared Library .

Можно ли использовать более новый компилятор gcc со стандартной библиотекой C++ стандартной библиотеки RHEL6?

Нет; стандартная библиотека C++ тесно связана с компилятором C++ (и может иметь другой ABI).

Кстати, я настоятельно рекомендую отправить исходный код вашей библиотеки и, возможно, сделать из него какое-нибудь бесплатное ПО. Затем вы можете попросить помощи в правильной упаковке вашей библиотеки у сообщества, работающего над этим древним дистрибутивом Redhat.

Обратите внимание, что ваша библиотека может иметь много других зависимостей. Например, если это библиотека графического интерфейса, она, вероятно, использует другие ресурсы (например, шрифты или изображения).

1
27.01.2020, 23:45

Теги

Похожие вопросы