Desvantagens no Scratchbox:Não consigo encontrar g++
-
12-09-2019 - |
Pergunta
Tenho usado o sbox com uma base de código baseada em Make sem problemas.Agora Estou a usar uma base de código baseada em scons, e estou a ter alguns problemas estranhos.
Parece que dentro do scratchbox, os scons não conseguem encontrar o g++.Por exemplo, ele tenta executar coisas como:
olá, olá.c
Quando deveria estar fazendo:
g++ -o olá olá.c
Então, presumivelmente, sua variável de string g++ está vazia.g está presente e em o PATH - "que g " produz /scratchbox/compilers/bin/g .
A mesma fonte constrói bem fora do scratchbox, por isso não deve ser um problema com o scons ou a base de código.Não há ambiente especial variáveis definidas fora do scratchbox quando este funciona.
Se eu ligar simbolicamente /usr/bin/g a /scratchbox/compilers/bin/g , fica um pouco mais longe (produz os comandos g com aspecto correcto) mas em seguida, ao executá-los produz:
sb_gcc_wrapper (g++):/scratchbox/compilers/arm-linux-cs2007q3-51sb3/bin/sbox-arm-none-linux-gnueabi-g++:Não existe tal arquivo ou diretório
O arquivo listado é presente.
PATH contém /scratchbox/compilers/bin, SBOX_REDIRECT_FROM_DIRS contém /usr/bin e SBOX_REDIRECT_TO_DIRS contém /scratchbox/compilers/bin, então acho que deve ser capaz de encontrá-lo.
Qualquer sugestão seria apreciada!Obrigado, Ray
Editar:Talvez relacionado - ele também não consegue encontrar o pkg-config a menos que eu acrescente o caminho completo no arquivo scons
Solução
scons não propaga a variável de ambiente PATH, portanto, testar, por exemplo.'qual g++' não ajuda muito.
Either set the compilers directly, e.g.
env['CXX'] = '/scratchbox/compilers/bin/g++'
Construa seu próprio PATH explícito
path = ['/scratchbox/compilers/bin/','/bin', '/usr/bin', '/sbin','/usr/sbin']
env = Environment(ENV = {'PATH' : path})
Ou use a variável PATH env do seu shell
import os
env = Environment(ENV = {'PATH' : os.environ['PATH']})