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

Foi útil?

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']})
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top