Where would I install these new C and C++ library files on the target system? (Obviously not in /usr/lib where they may interfere with the default ones!)
Pelo contrário, você instalaria essas novas bibliotecas em /usr/lib/
(ou qualquer que seja o padrão no sistema de destino; no meu Debian eles iriam entrar em
/usr/lib/x86_64-linux-gnu/
e /lib/x86_64-linux-gnu/
). Você precisa se preocupar com rpath -s.
My software is a shared object, I guess I can statically link the C++ library?
Isso provavelmente não funcionará para um objeto compartilhado (mas poderia funcionar para um executável; você vincularia estaticamente o libstdc++
e dinamicamente o libc.so
). No entanto, um objeto compartilhado pode ser vinculado a outras bibliotecas compartilhadas. Observe que, se você está fornecendo uma biblioteca C ++ 11, seus usuários precisam de um compilador C ++ 11 (a menos que você projete com muito cuidado sua biblioteca para ter apenas uma API compatível com C).
Você provavelmente enviaria alguns arquivos de cabeçalho e deveria tirar proveito do pkg-config . arquivo .pc
apropriado.
Considere ler o Guia da Biblioteca de Programas , C++ dlopen mini HowTo & O documento Como escrever uma biblioteca compartilhada do Drepper
Would it be possible to use the more recent gcc compiler with the standard C++ library of the RHEL6 stock one?
Não; a biblioteca C ++ padrão está intimamente ligada ao compilador C ++ (e poderia ter uma ABI diferente).
BTW, recomendo veementemente enviar o código-fonte da sua biblioteca e talvez torná-lo algum software livre . Você pode então pedir ajuda para empacotar sua biblioteca apropriadamente da comunidade que trabalha na antiga distribuição de Redhat.
Observe que sua biblioteca pode ter muitas outras dependências. Por exemplo, se é uma biblioteca GUI, provavelmente usa outros recursos (como fontes ou imagens).