Compilando o script c ++ com bibliotecas externas, não funcionando

0

Eu não consigo fazer isso funcionar. Eu tenho um script c ++ que eu não tenho escrito, que eu preciso para compilar com g + +. O início do script é assim:

#include "x.hh"
#include "y.hh"

#include <iostream>
...

Entendo que, ao usar a inclusão entre aspas, isso significa que há bibliotecas externas que devem ser incluídas ao fazer a compilação. Os arquivos de cabeçalho, x.hh e y.hh, bem como os arquivos x.cc e y.cc (que eu acho que são as bibliotecas) mais o script principal estão todos na mesma pasta. Eu tentei compilá-los com:

g++ Documents/Cpp/script.cc -o script -L Documents/Cpp -lx -ly

Isso retorna o erro:

/usr/bin/ld cannot find -lx
/usr/bin/ld cannot find -ly
collect2 returned 1 exit status

O caminho de pesquisa não é o mesmo que eu especifiquei. Mesmo se eu escrever:

g++ Documents/Cpp/script.cc -o script -L sdfsdf/sdfsd-lx -ly

Ainda parece na pasta /usr/bin/ld . Não importa o que eu escreva em -L , eu não consigo fazer isso funcionar. Como?

    
por user2812393 25.09.2013 / 15:54

1 resposta

0

Você pode usar -I para especificar um diretório de inclusão.

Então o "comando de compilação" deve ser assim:

g++ -o output_name -I/include/path source.cpp

Usando seu nome de origem e caminho de inclusão:

g++ -o script -I~/Documents/Cpp ~/Documents/Cpp/script.cc 
    
por PeppeDAlterio 25.09.2013 / 16:25