problema com o comando de ferramentas externas do Visual C ++ 2010 (Express)

0

Normalmente, desenvolvemos no VS 2005 Pro, mas eu queria dar uma passada no VS 2010. Temos ferramentas de compilação personalizadas baseadas nas ferramentas do GNU make que são chamadas ao criar um executável.

Este é o erro que vejo sempre que chamo a minha ferramenta externa:

...\gnu\make.exe): *** couldn't commit memory for cygwin heap, Win32 error 487

A advertência é que ele ainda funciona perfeitamente no VS2005, além de ser chamado direto da linha de comando. Além disso, minha ferramenta externa é configurada exatamente da mesma forma que no VS 2005.

Existe alguma configuração em algum lugar que possa causar esse erro?

    
por the_e 09.06.2010 / 17:38

2 respostas

1

De problema com heap, erro win32 487 :

Each Cygwin app gets a special heap area to hold stuff which is inherited to child processes. Eg. all file descriptor structures are stored in that heap area (called the "cygheap"). The cygheap has room for at least 4000 file descriptor structures. But - that's the clue - it's fixed size. The cygheap can't grow. It's size is reserved at the application's start and it's blocks are commited on demand.

For some reason your server application needs all the cygheap space when running under the described conditions.

Uma possível solução pode ser encontrada em Como alterar a memória máxima do Cygwin :

Cygwin's heap is extensible. However, it does start out at a fixed size and attempts to extend it may run into memory which has been previously allocated by Windows. In some cases, this problem can be solved by adding an entry in the either the HKEY_LOCAL_MACHINE (to change the limit for all users) or HKEY_CURRENT_USER (for just the current user) section of the registry.

Add the DWORD value heap_chunk_in_mb and set it to the desired memory limit in decimal MB. It is preferred to do this in Cygwin using the regtool program included in the Cygwin package. (For more information about regtool or the other Cygwin utilities, see the section called “Cygwin Utilities” or use the --help option of each util.) You should always be careful when using regtool since damaging your system registry can result in an unusable system. This example sets memory limit to 1024 MB:

regtool -i set /HKLM/Software/Cygwin/heap_chunk_in_mb 1024
regtool -v list /HKLM/Software/Cygwin

Exit all running Cygwin processes and restart them. Memory can be allocated up to the size of the system swap space minus any the size of any running processes. The system swap should be at least as large as the physically installed RAM and can be modified under the System category of the Control Panel.

Não seria difícil garantir que o tamanho máximo do seu arquivo de troca do Windows seja grande o suficiente.

E, a propósito, quanta memória RAM você tem em seu computador?

    
por 15.06.2010 / 08:41
0

Talvez seja um problema com a Expressividade versus o Profissionalismo da versão. Você pode tentar a versão experimental teste da versão profissional .

    
por 09.06.2010 / 18:09