Ir ao conteúdo

Dúvida sobre criação das próprias bibliotecas.


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Boa noite!

 

Gostaria de saber se é possível eu separar um ".h" do seu ".cpp" ambos criados por mim. Queria organizá-los em duas pastas diferentes, uma só conteria os ".h" e a outra só os ".cpp", mas não está dando certo aqui para mim. Criei três pastas, uma eu chamei de "headers", a outra eu chamei de "sources" e a última eu chamei de "main" onde ficaria o arquivo "main.cpp", assim:

C:\Users\Claudio\Desktop\Main

C:\Users\Claudio\Desktop\Headers

C:\Users\Claudio\Desktop\Sources

 

No arquivo "main.cpp" eu coloquei "#include "../Header/teste.h"". A constante que eu defini ali para teste foi lida sem erro pela função "main" do arquivo "main.cpp", mas a função que só mostraria "Ola Mundo", cuja implementação está na pasta "Headers" não funcionou.

Postado

Na pasta Headers deve conter apenas o cabeçalho da funções (declaração);

um outro arquivo do tipo *.c ou *.cpp, com nome hello.c por exemplo, vai conter a definição;

Ao compilar certifique se de que; o comando de copilação contenha o arquivo hello.o na linha de comando.

 

 

Editores IDE fazem esse tipo de projeto ficar mais fácil e prático.

CODE [::] BLOCKS é um destes.

 

 

 

;)

Postado

Na pasta Headers deve conter apenas o cabeçalho da funções (declaração);

um outro arquivo do tipo *.c ou *.cpp, com nome hello.c por exemplo, vai conter a definição;

Ao compilar certifique se de que; o comando de copilação contenha o arquivo hello.o na linha de comando.

Obrigado por responder, mas essa parte eu já sei. O que eu acho, só queria um confirmação é que os arquivos ".h" devem ter seus correspondentes ".cpp" na mesma pasta, pelo que eu vi não dá para separá-los em pastas diferentes. Na função "main", quando você inclui o ".h", você dá o endereço dele, mas o ".h" não sabe onde está a implementação das funções dele, que deveriam estar na mesma pasta, mas eu coloquei em outra.

 

Minha pergunta é se tem como fazer isso sem ser gambiarra, mas acho que não. Acho que ficaria bem mais organizado se desse para fazer.

  • Solução
Postado

Você pode separar os arquivos, por exemplo
 

headers/teste.hsources/teste/cmain/main.c

No gcc para compilar é só entrar com seguinte comando

gcc ../sources/teste.c main.c

Outra forma de compilar é usar make/Makefile, principalmente quando há vários sources.

Para isso deve ser criado o arquivo Makefile na raíz do projeto:
 

TARGET = programaOBJETOS = sources/teste.o main/main.o CC=gcc.c.o:	$(CC) $(CFLAGS) -c $< -o $@$(TARGET): $(OBJETOS)	$(CC) $(OBJETOS) -o $(TARGET)clean:	rm -f $(OBJETOS) $(TARGET)

Ai é só entrar com o comando make, que faz a compilação e gera o arquivo programa.

 

Se você estiver usando linha de comando, veja como fazer algo assim no seu sistema.

Postado

Entendi, muito obrigado por sua ajuda! Funcionou aqui colocando o caminho do ".cpp" no comando de compilação do g++. Achei que não tinha como.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!