Как сделать ссылку на старую версию математической библиотеки? - PullRequest
0 голосов
/ 06 февраля 2020

Я собираюсь выпустить библиотеку (.so) для моего клиента. Тем не менее, платформа моего клиента - очень старый Debian (9.1 выпущен в 2017 году). Моя библиотека работает только с> = glib c -2.27.
Мне удалось запустить программу с помощью следующих приемов

// copy libm-2.27.so from my computer to the old debian
ln -sf ./libm-2.27.so libm.so.6
gcc ./test.c -o ./test -lmylib -L ./ -lm
LD_LIBRARY_PATH=`pwd` ./test

Но мой клиент не принимает это решение.
Является ли это Можно ли связать более старую версию математической библиотеки?
Например, клиент дает мне библиотеку математики, и я связываю свою библиотеку с ней на моем компьютере.

спасибо!

1 Ответ

1 голос
/ 07 февраля 2020

Моя библиотека работает только с> = glib c -2.27.

Это потому, что вам действительно требуется функциональность, которая была добавлена ​​в GLIB C -2.27, или потому что вы В системе просто установлена ​​эта версия, и вы не знаете, как собрать ее для более старой системы?

Из комментариев видно, что на самом деле не нужно GLIB C -2.27.

В этом случае простейшим решением является установка виртуальной машины с Debian 9.1 и сборка вашей библиотеки внутри этой виртуальной машины.

Это дает дополнительное преимущество, которое вы можете протестируйте вашу библиотеку, прежде чем отправлять ее своему клиенту, в среде, которая соответствует среде клиента.

Если вам не нужна виртуальная машина, другие решения перечислены здесь здесь .

Мне удалось запустить программу с помощью следующих трюков ... Но мой клиент не принимает это решение.

Ваш клиент умный отвергнуть это решение: оно вообще не может работать, а работает в таком э Окружающая среда может подвергнуть вашего клиента множеству потенциальных неопределенных действий и сбоев. Чтобы понять, почему это так, прочитайте этот ответ .

...