- Автор темы
- Добавить закладку
- #21
Пытаюсь запустить приложение, но получаю ошибку "Failed to resolve full path of the current executable []". Есть ли какие-то решения этой проблемы. У исполняемого файла достаточно привилегий для запуска.
Ванги тут нет. Исходники в студию. Может быть что угодно, например если в твоем аппе есть логика определения собственного пути, то на ESXi она может работать не так, как ожидается. Ядро виртуальной машины ESXi может работать с путями иначе, чем в других средах. И так далее. Так что show me the code. Можешь под хайд.Пытаюсь запустить приложение, но получаю ошибку "Failed to resolve full path of the current executable []". Есть ли какие-то решения этой проблемы. У исполняемого файла достаточно привилегий для запуска.
void main(){
print("Hello World!");
}
Ну, правильно. Там где ты собирал апп, стояла glibc 2.34, а на таргете (eSXI) ее нет....там, где исходники есть выдает "./prog: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by ./prog)"
Совершенно верно. Путей несколько: либо ты статически собираешь апп на своей машине (компиляция или кросс-компиляция), и тогда оно будет включено в апп, либо собирай на eSXI, либо ставь требуемую версию либы в eSXI и настраивай пути к ней (LD_LIBRARY_PATH), либо делай даунгрейд либы у себя чтобы оно совпало по версии с таргетом, либо если eSXI поддерживает какую-то контейнеризацию, попробуй упаковать все в образ.Я так посмотрел, вроде ESXi 7 работает на glibc_2.17, тоесть мне нужно тогда как-то статически линковать glib или как-то 2.17 вместо 2.34 заставить использовать
Совершенно верно. Путей несколько: либо ты статически собираешь апп на своей машине (компиляция или кросс-компиляция), и тогда оно будет включено в апп,
Это слишком продвинутый вариант. Есть что попроще?возми свой сорец - декомпильни в ассам под платформу на которой юзаешь - это в 90% amd64
. Под ESXi ещё и другие программы нужны иногда. К тому же, раз у других получилось под ESXi локер создать, значит таки можно сторонние программы под ESXi создавать и они там будут запускаться.нуну, это какие например?и другие программы нужны иногда.

Я понимаю, поэтому дал разные варианты. Но за пояснение -- спасибо.Не очень надежный способ, потому как если собрать с ключем -static, то прилинковать параллельно динамическую библиотеку в некоторых случаях будет весьма непросто.
В общем не очень здорово статически линковать glibc, т.к. те либы которые линкуются динамически на машине где прога будет исполняться, могут быть расчитаны под другую версию glibc. Глюки могуть быть очень интересные и непредсказуемые.
ты тестил или ты просто так думаешь?например для ESXi 6.7+ можно использовать образ conanio/gcc46 - Ubuntu 12.04.5, GCC 4.6.3, glibc 2.15
stav' centos, kachai source gcc 4.6.3, compile from source, zatem y tebya est' gcc4.6.3 kotorii kak raz stoit na vseh OS esxi, naskol'ko ya znauты тестил или ты просто так думаешь?