Estou tendo dificuldade em descobrir por que não posso ter a mesma função em vários arquivos de origem C. Eu sempre pensei que não posso acessar funções em outro arquivo de origem, desde que não sejam declaradas em um arquivo de cabeçalho.
Vamos supor que eu tenha o seguinte:
main.c -> inclui Thread1.h & Thread2.h
Thread1.h -> declara por exemplo, void * Thread1 ();
Thread1.c -> define void * Thread1 () {} e define void Lock () {}
Thread2.h -> declara por exemplo, void * thread2 ();
Thread2.c -> define void * thread2 () {} e define void Lock () {}
Agora o GCC me diz que não posso fazer isso!
gcc -tthread -wall -o executável main.c Thread1.c Thread2.c
Erro: Definição múltipla de `bloqueio '
Então minha pergunta agora é:Como posso realizar o que quero?
Eu não acho que isso seja impossível. Caso contrário, todo esse código -fonte C disponível em todas as muitas bibliotecas C precisaria ser único. (Nah não faria sentido, ou seria?)
Por isso, pensei comigo mesma há cerca de 3 horas que deve haver uma solução. Que devo estar perdendo alguma coisa aqui.
Bem, eu tentei pesquisar no Google ... mas de alguma forma minhas habilidades no Google não me ajudaram desta vez. Não há realmente nenhuma maneira de fazer isso? Ou eu sou apenas estúpido em procurar por isso?
Desde já, obrigado,
Leep