2011-10-02 5 views
4

Есть ли способ попросить ocamlopt связать с glibc 2.5, чтобы я мог запустить полученный двоичный код на машинах, имеющих только эту версию библиотеки?Как я могу попросить ocamlopt связать с glibc 2.5?

Если бы это было возможно, есть ли дополнительные пакеты, которые мне пришлось бы установить на моей машине? У моей машины нет glibc 2.5. Есть ли для этого пакет?

Заранее спасибо.

ответ

4

Вы можете использовать следующие ocamlopt флаги указать флаги для компиляции и компоновки:

-cc <comp> Use <comp> as the C compiler and linker 
-cclib <opt> Pass option <opt> to the C linker 
-ccopt <opt> Pass option <opt> to the C compiler and linker 

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

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

3

Из моего опыта, лучше получить chroot или vm с системой на основе glibc-2.5 и скомпилировать дистрибутивные двоичные файлы там.

+0

Я уверен, что это правда, но это добавляет много осложнений, о которых OP может опасаться позже. Для производственных работ я уверен, что вы хотите рассматривать это как кросс-сборку (с chrooted или виртуальной средой). Для просто экспериментирования можно было бы работать непосредственно в вашей собственной системе (хотя, возможно, это создает больше проблем, чем решает - я откладываю на тех, у кого больше опыта). –

+0

, начиная с того факта, что установка устаревшего glibc и настройка инструментов построения (но не для остальной системы) использовать его не тривиально. – ygrek

Смежные вопросы