Saturday, 2 December 2017

Ld output format opções binárias


Existe um conjunto de opções de linha de comando que convencerá o gcc a produzir um arquivo binário plano a partir de um arquivo de origem independente. Por exemplo, suponha que o conteúdo do foo. c não seja nenhuma referência externa, nada a ser exportado para o vinculador. Id gostaria de obter um pequeno arquivo com apenas as instruções da máquina para esta função, sem qualquer outra decoração. Tipo de como um arquivo (DOS), exceto modo protegido de 32 bits. As outras respostas são definitivamente o caminho a percorrer. No entanto, eu tinha que especificar argumentos de linha de comando adicionais para objcopy para que minha saída fosse como esperado. Observe que estou desenvolvendo código de 32 bits em uma máquina de 64 bits, daí o argumento - m32. Além disso, eu gosto de sintaxe de montagem Intel melhor, assim você verá que nos argumentos também. Ok, heres onde eu tinha que especificar que eu especificamente só queria a seção. text: Levei cerca de 2 horas de leitura e tentar diferentes opções antes que eu percebi isso. Espero que isso salve alguém dessa vez. Você pode passar opções para o vinculador diretamente com - Wl, ltlinker optiongt A documentação relevante é copiada abaixo do homem gcc - Wl, opção Pass opção como uma opção para o vinculador. Se a opção contém vírgulas, ela é dividida em várias opções nas vírgulas. Você pode usar esta sintaxe para passar um argumento para a opção. Por exemplo, - Wl, - Map, output. map passa - Mapa output. map para o vinculador. Ao usar o vinculador GNU, você também pode obter o mesmo efeito com - Wl, - Mapoutput. map. Então, quando compilar com gcc se você passar - Wl, - oformatbinary você irá gerar um arquivo binário em vez do formato elf. Onde --oformatbinary informa ld para gerar um arquivo binário. Isso remove a necessidade de objcopy separadamente. Observe que --oformatbinary pode ser expresso como OUTPUTFORMAT (binário) de dentro de um script de vinculador. Se você quiser lidar com binários planos, há uma grande chance de que você iria beneficiar de alto nível de controle que scripts linker fornecer. Respondeu May 6 14 at 18:40

No comments:

Post a Comment