É possível ter dois executáveis g ++ com lib compartilhada?

1

Pode parecer estranho, mas eu quero ter dois executáveis g ++. Um em / usr / bin / g ++ normal, que atualmente está funcionando bem. O outro sob / sandbox / g ++ que é protegido pelo apparmor. No entanto, quando copiei g ++ (não symlink, o executável original g ++ - 4.6) para / sandbox / g ++, ele não pode executar com o seguinte erro:

g++-4.6: error trying to exec 'cc1plus': execvp: No such file or directory

Como posso configurá-lo para usar o mesmo caminho / lib que o g ++ normal? Eu procurei on-line a resposta comum para acima erro é reinstalar o g + +, mas meu g + + está funcionando bem, eu só quero que este trabalhe ao mesmo tempo.

Obrigado por qualquer sugestão!

Editar:

Depois de adicionar algumas regras do PATH no bashrc, o cc1plus é encontrado, mas todos os caminhos de arquivos incluídos estão confusos. Acho que vou seguir a sugestão de criar arquivos de origem localmente e ver como configurá-lo.

    
por Frost 06.07.2013 / 00:27

1 resposta

0

Tente isto:

cd ~
cp /usr/bin/g++ gx
touch x.cpp
strace ./gx -o x x.cpp 2>xlog

Ele falha com a mesma mensagem de erro, e no xlog você pode ver que o g ++ espera encontrar o cc1plus em um diretório relativo ../lib/etc . Isto é independente do apparmor.

Agora, provavelmente há alguma configuração que você pode usar para fazer o g ++ procurar outro lugar para o cc1plus, se você quiser construí-lo a partir do código fonte, mas sim que a opção g ++ deve ser executada a partir do diretório normal instalado. g ++ será executado a partir de uma cópia de si mesmo em seu diretório normal, renomeado, é claro. Eu acho que você poderia sujeitar a cópia ao aparmor, se isso estimular suas galinhas.

    
por Salt 06.07.2013 / 02:00