Pergunta

Estou tentando usar a opção de compilador A /D no MSVC6 para definir uma string, mas há algo estranho em usar citações duplas em torno dela. Para depurar esse problema, seria extremamente útil para mim poder ver qual valor o pré -processador está realmente substituindo meu código em que a macro é expandida. Existe alguma maneira de fazer isso? Tentei criar um arquivo de listagem com "Assembléia e fonte", mas a fonte contém o nome da macro original e o ASM é um pouco incompreensível bobagem nessa linha. Existe uma maneira de obter o valor macro no momento da compilação?

Falhando nisso (ou talvez mais útil), como especificar uma string com a opção /D? Ele precisa substituir minha fonte por citações duplas, já que estou usando -a como uma string literal.

Foi útil?

Solução

Experimente uma das seguintes opções para cl.exe:

/E preprocess to stdout
/P preprocess to file

Se você estiver construindo no Visual Studio, poderá especificar opções de linha de comando personalizadas em uma das caixa de diálogo Projeto Propriedade.

Outras dicas

O MSVC possui um sinalizador do compilador que permite ver o arquivo de origem pré -processado com todas as macros expandidas, comentários removidos etc. - toda a unidade de tradução em termos do código real que será compilado. A saída pré -processada deve fornecer a visão que você está procurando em relação à sua expansão de macro. Mais informações aqui.

Há uma opção para passar para o compilador (/P) e escreverá a saída do pré -processador em my_cpp_file.i onde você pode olhar para ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top