Página 1 de 2

Erro C3018

Enviado: 11 Out 2004 12:03
por Giovanni
Estou tendo um erro C3018 - Too many symbols quando compilo meu programa, encontrei um site na internet que informa que é devido ao grande número de variaveis e por isso precisaria reduzir, entretando todas elas são necessárias...

Alguém sabe me ajudar como corrijo este problema?

Obrigado

Enviado: 11 Out 2004 12:15
por Clipper
Prezado Colega

O problema é este mesmo, divida seu progrma em vários módulos e compile-os individualmente, juntando eles na linkagem, declare as variaveis como Private, Static, Local e Public conforme a necessidade.

Até logo.

Marcelo

Enviado: 22 Ago 2007 11:08
por Gilberto M Silva
divida seu progrma em vários módulos e compile-os individualmente, juntando eles na linkagem
Alguem pode postar um *.BAT que faça isso!!
desde já agradeço.

Gilberto

Enviado: 22 Ago 2007 11:12
por Maligno
Como assim um BAT? É necessário dividir os fontes manualmente. Ou você quer um BAT para compilar um a um? Ou um script de linkedição com os fontes divididos? Explique melhor.

Enviado: 22 Ago 2007 11:20
por Gilberto M Silva
Blz, Já vi aqui no forum como fazer, é que ta dando esse erro mais já vi como resolver.
Valeu Mr. Maligno...........

Enviado: 22 Ago 2007 11:22
por Gilberto M Silva
Ou um script de linkedição com os fontes divididos? Explique melhor.
è isso mesmo, um script

Enviado: 22 Ago 2007 11:24
por Maligno
Ok. Se já resolveu, tanto melhor. Mas se não resolveu, há uma série de exemplos no fórum. Mas se tiver dúvida e se preferir, diga. :)

Enviado: 22 Ago 2007 12:28
por diogenes_varela
Qual o tamanho do seu PRG? Nem sempre é necessário dividir o programa em módulos. O que deve estar acontecendo é que você criou uma matriz / tabela (array - linhas e colunas) que está ficando grande demais, nesse caso você precisa dividir somente a tabela e não o PRG.

Enviado: 22 Ago 2007 12:37
por Maligno
C3018 - Too many symbols
O tipo do erro tem a ver com a quantidade excessiva de símbolos, que extrapolou a capacidade de um simples objeto. Portanto, pra resolver isso, só mesmo dividindo o fonte problemático. Palavras do NG. :)

Enviado: 22 Ago 2007 12:40
por diogenes_varela
Portanto, pra resolver isso, só mesmo dividindo o fonte problemático. Palavras do NG. :)
Digo isso pq já ocorreu milhares de vezes comigo a mesma coisa: apenas uma matriz estava grande demais, e resolvi dividindo-a. Cheguei, inclusive, a voltar os módulos que tinha separado para o mesmo fonte e funcionou normalmente.

Pode ser que resolva, pois o erro era semelhante.

Enviado: 22 Ago 2007 13:06
por Maligno
Sim, há um erro, que não esse C3018, cuja solução é essa mesma que você citou. Mas é um outro erro, que tem outro código, que não me lembro no momento.

Enviado: 22 Ago 2007 13:13
por diogenes_varela
Mas é um outro erro, que tem outro código, que não me lembro no momento.
Vou reproduzi-lo para que não pairem dúvidas e posto em seguida.

Enviado: 22 Ago 2007 13:24
por diogenes_varela
Tens razão, amigo Maligno. O erro para matrizes grandes demais é o Fatal C3001 Memory overbooked.

Vou buscar esse Too many symbols pois já apanhei muito dele e lembro que a solução é simples.

Enviado: 22 Ago 2007 13:50
por Maligno
Faz tanto tempo que não tenho esse tipo de erro que nem me lembrava mais dele. Mas é esse aí mesmo.

Enviado: 22 Ago 2007 17:53
por Gilberto M Silva
Vou buscar esse Too many symbols pois já apanhei muito dele e lembro que a solução é simples
Diogenes, pois veja e poste aqui, ficarei grato.
Gilberto :))