Cześć!
Mam kilkaset serwerów gdzie jestem zwykłym userem.
Na serwerach odpalone są daemony pisane w pythonie, teraz przerobiłem skrypty na c++ żeby efektowniej były wykonywane obliczenia i żeby trochę mniej płacić za zużycie CPU.
Niestety zmagam się z problemem kompilacji programu(w standardzie c++98):
- część serwerów nie ma kompilatorów (nie mam uprawnień roota żeby doinstalować).
- mix systemów w przeróżnych wersjach: debian, ubuntu, slackware, gentoo, jakieś totalne noname
Próbowałem kompilować u siebie w g++
z flagą -static
, lecz kończy się to na Segmentation fault
,
bez flagi nie pasują wersje bibliotek /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.21 not found (required by ./recalc-1.0-alfa)
Aktualnie program potrzebuje:
$ ldd recalc-1.0-alfa
linux-vdso.so.1 (0x00007ffcbb9de000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb9b0b8d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb9b0889000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb9b0672000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb9b02d3000)
/lib64/ld-linux-x86-64.so.2 (0x000055bb1c7f6000)
Nowsze biblioteki są kompatybilne wstecz?
Jeśli tak, czy można ustawić przy kompilacji żeby używał niższej wersji bibliotek?
Czy jest jakaś możliwość dystrybuowania programu bez ujawniania źródła?
Po prostu, czy da się przekompilować program, który będzie się odpalał na różnych dystrybucjach linucha?