В общем, такая проблема: есть большое C++ приложение, использующее несколько библиотек типа pthread, zlib, libdl. Компилируется оно GCC.
Мне хочется залинковать его статически, чтобы не было ссылок на libstd++ и libgcc.so, но ничего не получается.
Я играл с опциями -static и -static-libgcc, пробовал всяческие извраты типа -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic, но ничего не выходит.
В первом случае (-static) не находятся функции как раз из используемых библиотек:
................................
/usr/src/build/146482-i386/BUILD/gcc-3.2-20020903/obj-i386-redhat-linux/gcc/../.
./gcc/unwind-pe.h:61: undefined reference to `pthread_create'
Если просто сказать -static-libgcc, то все равно ldd выдает:
................................
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40089000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4015d000)
При использовании -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic летит огромная простыня с неразресолвенными ссылками на basic_strib::* и прочей ботвы из STL. Комбинации этих опций дают те же результаты, только совмещенные.
В общем, отчаянное положение.
Кто-нибудь сталкивался с такой бедой? Помогите, плиииз...
Заранее благодарен.