GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo determinar qué opciones de línea de comandos pasa gcc a ld de forma predeterminada?

Para los amantes de una línea:

echo "int main(void) {}" | gcc -o /dev/null -v -x c - &> /dev/stdout| grep collect | tr -s " " "\012"

Reemplazar -x c con -x c++ para obtener banderas de c++.

También se puede usar con clang, pero en tal caso deberías usar grep para /usr/bin/ld


Sí, puedes usar gcc -v hello.o -o hello para obtener la línea de enlace. Para su ejemplo en mi máquina ubuntu, obtengo esta línea de enlace (editada para que sea multilínea para facilitar la lectura):

/usr/lib/gcc/x86_64-linux-gnu/4.4.5/collect2
--build-id
--eh-frame-hdr
-m elf_x86_64
--hash-style=gnu
-dynamic-linker
/lib64/ld-linux-x86-64.so.2
-o hello
-z relro
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crti.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtbegin.o
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib
-L/lib/../lib
-L/usr/lib/../lib
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../.. -L/usr/lib/x86_64-linux-gnu
hello.o
-lgcc
--as-needed -lgcc_s --no-as-needed 
-lc
-lgcc
--as-needed -lgcc_s --no-as-needed
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtend.o
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crtn.o

Tenga en cuenta que collect2 es solo un alias para ld .


Linux
  1. Cómo borrar el historial de línea de comandos BASH en Linux

  2. Cómo apagar o reiniciar Linux usando la línea de comandos

  3. ¿Cómo recordar las opciones de comando?

  4. Cómo reiniciar Linux usando la línea de comandos

  5. ¿Cómo crear un archivo con el nombre de un argumento de línea de comando?

Cómo determinar la versión de Ubuntu a través de la GUI y la línea de comandos

Cómo comprobar la versión del sistema operativo con la línea de comandos de Linux

Cómo extraer el archivo Tar.xz en la línea de comandos de Linux

¿Cómo configurar el navegador predeterminado desde la línea de comandos?

Cómo encontrar la dirección IP en la línea de comandos de Linux

Cómo usar el comando which en Linux