Para o benefício de outros, pensei em incluir o que fiz.
Como você não consegue fazer o Visual Studio (2010 no meu caso) ignorar os avisos do LNK4204, minha abordagem foi dar a ele o que ele queria: os arquivos pdb. Como estava usando bibliotecas de código aberto no meu caso, já tenho o código compilando os arquivos PDB.
MAS, o padrão é nomear todos os arquivos PDF da mesma forma: vc100.pdb no meu caso. Como você precisa de um .pdb para cada .lib, isso cria um problema, especialmente se você estiver usando algo como o ImageMagik, que cria cerca de 20 arquivos .lib estáticos. Você não pode ter 20 arquivos lib em um diretório (ao qual o vinculador do seu aplicativo faz referência para vincular nas bibliotecas) e todos os 20 arquivos .pdb são chamados da mesma coisa.
Minha solução foi reconstruir meus arquivos de biblioteca estática e configurar o VS2010 para nomear o arquivo .pdb com relação ao PROJETO. Dessa forma, cada .lib obtém um nome semelhante .pdb, e você pode colocar todos os LIBs e PDBs em um diretório para seu projeto usar.
Portanto, para a configuração "Debug", editei:
Propriedades-> Propriedades de configuração -> C / C ++ -> Arquivos de saída -> Nome do arquivo do banco de dados do programa de
$ (IntDir) vc $ (PlatformToolsetVersion) .pdb
para ser o seguinte valor:
$ (OutDir) vc $ (PlatformToolsetVersion) D $ (ProjectName) .pdb
Agora, em vez de em algum lugar no diretório intermediário, os arquivos .pdb são gravados no diretório de saída, onde os arquivos .lib também estão sendo gravados E, o mais importante, eles são nomeados com um sufixo de nome de projeto D + . Isso significa que cada projeto de biblioteca produz um .lib de projeto e um .pdb específico de projeto.
Agora posso copiar todos os meus arquivos .lib de lançamento, meus arquivos .lib de depuração e os arquivos .pdb de depuração em um único lugar no meu sistema de desenvolvimento, e o projeto que usa essa biblioteca de terceiros no modo de depuração tem o pdb arquivos necessários no modo de depuração.