não consegue encontrar -lGL mesmo que o ldconfig mostre que está lá?

0

Eu instalei nvidia-current para desenvolvimento de CUDA que inclui libGL.so .

sudo ldconfig -v mostra esta saída:

...
/usr/lib/nvidia-current:
    libnvidia-compiler.so.195.36.24 -> libnvidia-compiler.so.195.36.24
    libcuda.so.1 -> libcuda.so.195.36.24
    libXvMCNVIDIA_dynamic.so.1 -> libXvMCNVIDIA.so.195.36.24
    libnvidia-cfg.so.1 -> libnvidia-cfg.so.195.36.24
    libGL.so.1 -> libGL.so.195.36.24
    libnvidia-tls.so.1 -> libnvidia-tls.so.195.36.24
    libOpenCL.so.1 -> libOpenCL.so.1.0.0
    libGLcore.so.1 -> libGLcore.so.195.36.24
...

Por que o vinculador não consegue encontrar essa biblioteca?

Se eu executar o make do diretório que estou tentando compilar, o vinculador não encontrará. Mas se eu executar apenas gcc ou ld com o -lGL , parece funcionar bem. Eu recebo:

/usr/lib/../lib/crt1.o: In function '_start':
(.text+0x18): undefined reference to 'main'
collect2: ld returned 1 exit status

O que me parece que está funcionando ... mas não estou trabalhando com o make ...

    
por daled 15.03.2016 / 18:46

1 resposta

0

O vinculador não procura em diretórios não padrão por padrão. Você precisa se certificar de que está procurando /usr/lib/nvidia-current usando o sinalizador -L .

Além disso, você deve ter os arquivos de desenvolvimento instalados. Um link simbólico libGL.so deve existir, o que aponta para a versão correta da biblioteca. Geralmente, isso deve ser feito contra a biblioteca GL do padrão mesa, e os arquivos nvidia devem ser usados em tempo de execução.

    
por dobey 15.03.2016 / 18:51