1.- ¿Cómo
sabe el compilador donde se encuentran las bibliotecas estándares?
2.- ¿Qué
relación existe entre gcc y g++? ¿Cuál debo usar?
3.- ¿Cuáles
son las opciones de compilación de gcc? ¿Dónde puedo
encontrar mas sobre esto?
1.-
¿Cómo sabe el compilador donde se encuentran las bibliotecas
estándares?
Las bibliotecas estándares están usualmente
ubicadas en bajo LIBDIR/libgcc.a donde LIBDIR está
usualmente bajo /usr/local/lib/machine/version. ¿C'omo se sabe?
ver la sección archivoc (files) del man gcc o man g++. Éstos
están al final de la página man.
para identificar la versión de su compilador
usar:
% gcc -v
o
%g++ -v
Con este comando usted podrá identificar el valor adoptado para
LIBDIR.
Por ejemplo, en mi sistema:
agustin@agv2001:~$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian
GNU/Linux)
agustin@agv2001:~$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian
GNU/Linux)
agustin@agv2001:~$ cd /usr/lib/gcc-lib/i386-linux/2.95.2/
agustin@agv2001:/usr/lib/gcc-lib/i386-linux/2.95.2$
ls -l
total 4120
-rw-r--r-- 1 root
root 88205 Jun 20 2000
SYSCALLS.c.X
-rwxr-xr-x 1 root
root 1673212 Jun 20 2000 cc1
-rwxr-xr-x 1 root
root 2123708 Jun 20 2000 cc1plus
-rwxr-xr-x 1 root
root 61276 Jun 20 2000
collect2
-rwxr-xr-x 1 root
root 89116 Jun 20 2000
cpp
-rw-r--r-- 1 root
root 1900 Jun 20
2000 crtbegin.o
-rw-r--r-- 1 root
root 2048 Jun 20
2000 crtbeginS.o
-rw-r--r-- 1 root
root 1408 Jun 20
2000 crtend.o
-rw-r--r-- 1 root
root 1616 Jun 20
2000 crtendS.o
drwxr-xr-x 4 root
root 4096 Jun 14 07:41
include
-rw-r--r-- 1 root
root 123208 Jun 20 2000 libgcc.a
lrwxrwxrwx 1 root
root 32 Jun
14 07:41 libstdc++.a -> ../../../libstdc++-libc6.1-2.a.3
lrwxrwxrwx 1 root
root 33 Jun
14 07:41 libstdc++.so -> ../../../libstdc++-libc6.1-2.so.3
-rw-r--r-- 1 root
root 2170 Jun 20
2000 specs
2.-
¿Qué relación existe entre gcc y g++? ¿Cuál
debo usar?
g++ es un programa que llama a gcc con los valores
predeterminados del lenguaje definidos para C++, y automáticamente
especifica los enlaces (links) con la biblioteca de C++.
En este curso se recomienda usar g++ mientras no
se diga lo contrario.
En muchos sistemas g++ es también instalado
con el nombre c++.
Por ejemplo en mi sistema:
agustin@agv2001:~$ which c++
/usr/bin/c++
agustin@agv2001:~$ ls -l /usr/bin/c++
lrwxrwxrwx 1 root
root 21 Jun
14 07:50 /usr/bin/c++ -> /etc/alternatives/c++
agustin@agv2001:~$ ls -l /etc/alternatives/c++
lrwxrwxrwx 1 root
root 12 Jun
14 07:50 /etc/alternatives/c++ -> /usr/bin/g++
agustin@agv2001:~$
Ojo l significa link o liga hacia (parecido a shortcut o acceso directo en windows)
3.-
¿Cuáles son las opciones de compilación de gcc? ¿Dónde
puedo encontrar mas sobre esto?
Esto está documentado en las páginas
del GNU. Yo he bajado una parte para atender su uso. Vea GCC
Command Options.