Librerías Para Compilar En C/C++ Y OpenGL

Hola, las librerías para poder compilar en C/C++ que instalaremos desde terminal con aptitude-install o con apt-get install o desde synaptic (recomiendo esta última) son:

$ sudo apt-get install build-essential cpp cpp-2.95-doc cpp-3.3 cpp3.4 cpp-4.0 g++-3.4 gcc gcc-2.95-doc gcc-3.3 gcc-3.3-base gcc-3.3-doc gcc-3.4 gcc-3.4-base gcc-3.4-doc gcc-4.0 gcc-4.0-base gcc-4.0-doc gcc-4.0-locales gcc-doc gobjc-4.0 libg++2.8.1.3-dbg libg++2.8.1.3-dev libg++2.8.1.3-glibc2.2 libgcc1 c-cpp-reference doc++ libstdc++5 libstdc++6 libstdc++6-4.0-dbg libstdc++6-4.0-dev libstdc++6-4.0-doc libstdc++6-dbg libstdc++6-dev libstdc++6-doc manpages-es

$ sudo apt-get install devhelp

Con esto también instalaremos documentación de ayuda para C/C++ y comandos de terminal.
Para poder trabajar con OpenGL instalaremos las siguientes:

$ sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev ftgl-dev gle-doc glut-doc glutg3 glutg3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa libgl1-mesa-dev libgl1-mesa-dri libglut3 libglut3-dev mesa-common-dev mesa-demos mesa-swrast-source mesa-utils

Para compilar programas nuestros escritos en C/C++ desde terminal escribiremos, para el caso de C:

$gcc miprograma.c -o miprograma
$./miprograma

Para el caso de C++ :

$g++ miprograma.cpp -o miprograma
$./miprograma

Si nuestro programa de C++ tiene ficheros .h realizados por nosotros (como clases) para compilar haremos:

$g++ clase1.cpp main.cpp -o main
$./main

Siendo clase1.cpp el programa correspondiente a clase1.h y main será nuestro programa principal, es decir; el programa donde declaramos main().

Para compilar programas con OpenGL escritos en C++, escribiremos:

$g++ miprograma.cpp -o miprograma -lglut
$./miprograma

Si lo hemos escrito en C basta cambiar g++ por gcc y .cpp por .c.

En ubuntu podemos obtener ayuda de lenguajes como C/C++ desde Sistema->Ayuda->Documentación del Sistema, nos aparecerá una pantalla en la que haremos click en Aplicaciones y luego en Programación, y desde ahí elegiremos lo que deseamos. Aquí tenéis un pantallazo:

Saludos🙂

25 comentarios en “Librerías Para Compilar En C/C++ Y OpenGL

  1. Pues gracias x la info esta, me ayudo mucho, ya tenia instalado el build-essential, y los otros eran los k andaba buscando, apenas se van terminando de instalar, era lo k queria, jeje, ya tiene rato k no le muevo a linux y apenas voy empezando, se me ha hecho muy facil, antes tenia un mandrake 7.2, luego cambie a 8.0, despues a 8.1, ya cheque el SuSE 10.0, el Mandrake 10 y feria creo y ahora este, y esta conganas, devolada configuras todo aki, jeje, saludos y gracias x el articulo, muy bueno😉

  2. Hola, tengo que hacer algunos ejemplos de aplicaciones con opengl en C, instalando esas librerias me deberia funcinar? es ue como pone lo de mesa y tal y yo uso los drivers propietarios de ati, hay algun problema?gracias.

  3. Con esas librerías sí debería funcionar, además no tienen nada que ver con los drivers propietarios de ninguna tarjeta gráfica, como mucho te darán mayor soporte, otra cosa es que instalaras el OpenGL de la web oficial, éste viene a ser el directX, ahora no encuentro el enlace .
    Te pongo otro enlace de opengl que seguro conocerás
    http://www.opengl.org/

    Saludos

  4. Saludos,

    he seguido los pasos que has descrito pero me aparecen estos errores al compilar un codigo OpenGL:

    /tmp/ccB10Gbq.o: In function `Special(int, int, int)’:
    glutmain.cpp:(.text+0x5c): referencia a `g_angle’ sin definir
    glutmain.cpp:(.text+0x6a): referencia a `g_angle’ sin definir
    glutmain.cpp:(.text+0x72): referencia a `g_angle’ sin definir
    glutmain.cpp:(.text+0x80): referencia a `g_angle’ sin definir
    /tmp/ccB10Gbq.o: In function `__static_initialization_and_destruction_0(int, int)’:
    glutmain.cpp:(.text+0xd5): referencia a `CMD2Model::CMD2Model()’ sin definir
    glutmain.cpp:(.text+0xfd): referencia a `CMD2Model::CMD2Model()’ sin definir
    /tmp/ccB10Gbq.o: In function `__tcf_2′:
    glutmain.cpp:(.text+0x146): referencia a `CMD2Model::~CMD2Model()’ sin definir
    /tmp/ccB10Gbq.o: In function `__tcf_1′:
    glutmain.cpp:(.text+0x15a): referencia a `CMD2Model::~CMD2Model()’ sin definir
    /tmp/ccB10Gbq.o: In function `Keyboard(unsigned char, int, int)’:
    glutmain.cpp:(.text+0x1a6): referencia a `CTextureManager::FreeInstance()’ sin definir
    glutmain.cpp:(.text+0x1ec): referencia a `glEnable’ sin definir
    glutmain.cpp:(.text+0x1fd): referencia a `glDisable’ sin definir
    glutmain.cpp:(.text+0x213): referencia a `glPolygonMode’ sin definir
    glutmain.cpp:(.text+0x229): referencia a `glPolygonMode’ sin definir
    glutmain.cpp:(.text+0x251): referencia a `glEnable’ sin definir
    glutmain.cpp:(.text+0x25f): referencia a `glDisable’ sin definir
    glutmain.cpp:(.text+0x275): referencia a `glPolygonMode’ sin definir
    /tmp/ccB10Gbq.o: In function `Init()’:
    glutmain.cpp:(.text+0x2a6): referencia a `glClearColor’ sin definir
    glutmain.cpp:(.text+0x2b2): referencia a `glShadeModel’ sin definir
    glutmain.cpp:(.text+0x2be): referencia a `glEnable’ sin definir
    glutmain.cpp:(.text+0x2ca): referencia a `glEnable’ sin definir
    glutmain.cpp:(.text+0x2dc): referencia a `CTextureManager::GetInstance()’ sin definir
    glutmain.cpp:(.text+0x2e4): referencia a `CTextureManager::Initialize()’ sin definir
    glutmain.cpp:(.text+0x2f8): referencia a `CMD2Model::LoadModel(char const*)’ sin definir
    glutmain.cpp:(.text+0x30c): referencia a `CMD2Model::LoadSkin(char const*)’ sin definir
    glutmain.cpp:(.text+0x320): referencia a `CMD2Model::SetAnim(int)’ sin definir
    glutmain.cpp:(.text+0x349): referencia a `CMD2Model::LoadModel(char const*)’ sin definir
    glutmain.cpp:(.text+0x35d): referencia a `CMD2Model::LoadSkin(char const*)’ sin definir
    glutmain.cpp:(.text+0x371): referencia a `CMD2Model::SetAnim(int)’ sin definir
    glutmain.cpp:(.text+0x392): referencia a `glDisable’ sin definir
    glutmain.cpp:(.text+0x39e): referencia a `glEnable’ sin definir
    glutmain.cpp:(.text+0x3f1): referencia a `glLightfv’ sin definir
    glutmain.cpp:(.text+0x40c): referencia a `glLightfv’ sin definir
    glutmain.cpp:(.text+0x427): referencia a `glLightfv’ sin definir
    /tmp/ccB10Gbq.o: In function `main’:
    glutmain.cpp:(.text+0x44a): referencia a `glutInit’ sin definir
    glutmain.cpp:(.text+0x456): referencia a `glutInitDisplayMode’ sin definir
    glutmain.cpp:(.text+0x46a): referencia a `glutInitWindowSize’ sin definir
    glutmain.cpp:(.text+0x47e): referencia a `glutInitWindowPosition’ sin definir
    glutmain.cpp:(.text+0x48a): referencia a `glutCreateWindow’ sin definir
    glutmain.cpp:(.text+0x49b): referencia a `glutKeyboardFunc’ sin definir
    glutmain.cpp:(.text+0x4a7): referencia a `glutSpecialFunc’ sin definir
    glutmain.cpp:(.text+0x4b3): referencia a `glutReshapeFunc’ sin definir
    glutmain.cpp:(.text+0x4bf): referencia a `glutDisplayFunc’ sin definir
    glutmain.cpp:(.text+0x714): referencia a `glutMainLoop’ sin definir
    /tmp/ccB10Gbq.o: In function `Reshape(int, int)’:
    glutmain.cpp:(.text+0x757): referencia a `glViewport’ sin definir
    glutmain.cpp:(.text+0x763): referencia a `glMatrixMode’ sin definir
    glutmain.cpp:(.text+0x768): referencia a `glLoadIdentity’ sin definir
    glutmain.cpp:(.text+0x796): referencia a `gluPerspective’ sin definir
    glutmain.cpp:(.text+0x7a2): referencia a `glMatrixMode’ sin definir
    glutmain.cpp:(.text+0x7a7): referencia a `glLoadIdentity’ sin definir
    /tmp/ccB10Gbq.o: In function `Display()’:
    glutmain.cpp:(.text+0x7be): referencia a `glClear’ sin definir
    glutmain.cpp:(.text+0x7c3): referencia a `glLoadIdentity’ sin definir
    glutmain.cpp:(.text+0x856): referencia a `g_angle’ sin definir
    glutmain.cpp:(.text+0x86d): referencia a `g_angle’ sin definir
    glutmain.cpp:(.text+0x87b): referencia a `g_angle’ sin definir
    glutmain.cpp:(.text+0x881): referencia a `g_angle’ sin definir
    glutmain.cpp:(.text+0x892): referencia a `g_angle’ sin definir
    /tmp/ccB10Gbq.o:glutmain.cpp:(.text+0x8a0): más referencias a `g_angle’ sin definir a continuación
    /tmp/ccB10Gbq.o: In function `Display()’:
    glutmain.cpp:(.text+0x90f): referencia a `glTranslatef’ sin definir
    glutmain.cpp:(.text+0x938): referencia a `glRotatef’ sin definir
    glutmain.cpp:(.text+0x963): referencia a `CMD2Model::DrawModel(float)’ sin definir
    glutmain.cpp:(.text+0x98e): referencia a `CMD2Model::DrawModel(float)’ sin definir
    glutmain.cpp:(.text+0x993): referencia a `glutSwapBuffers’ sin definir
    glutmain.cpp:(.text+0x998): referencia a `glutPostRedisplay’ sin definir
    /tmp/ccB10Gbq.o: In function `CTimer::GetTimeMSec()’:
    glutmain.cpp:(.text._ZN6CTimer11GetTimeMSecEv[CTimer::GetTimeMSec()]+0xe): referencia a `glutGet’ sin definir
    collect2: ld returned 1 exit status

  5. Hola chavalín, veamos
    1º En el fichero que utilices opengl debes tener el siguiente include
    #include
    2º La función main es preferible que la declares de la siguiente forma:
    int main(int argc, char **argv)
    3º La primera instrucción que debes poner en main debe ser la siguiente:
    glutInit(&argc, argv);
    4º Después de tu sección de includes te recomiendo que pongas siempre la siguiente instrucción:
    using namespace std;
    En mi sección de video-tutoriales hablo en un tuto que hice sobre algunas indicaciones para poder programar en OpenGL, no se ve muy bien pero la culpa no es mia sino de youtube y toda la pesca

    Si has utilizado la librería glui deberás añadirla a tu orden de compilación del proyecto poniendo -lglui
    Cuéntame como te ha ido

    Saludos🙂

  6. Hola Cristobal,

    gracias por las indicaciones que me has dicho, pero nada…los mismos errores.

    Me he bajado Anjuta (me he puesto ubuntu hace poco), que dicen por ahi que esta bien, y me salen unos errores muy parecidos sino son los mismos…

    ¿Cual es tu consejo? ¿Te digo donde está el codigo que intento compilar?

  7. Hola, pues si me dices el código mejor porque así se me hace muy cuesta arriba el poder ayudarte. Me lo puedes pasar por e-mail, a tu derecha tienes un botón para mandarme e-mails.

    ¿Has instalado las librerías de C/C++ y OpenGL no?

    Saludos

  8. vas a pensar que estoy ciego, pero no veo en enlace a tu mail…

    Si he instalado las las librerias de C/C++ y OpenGL. De todos modos, ¿hay alguna manera de comprobar que estan correctamente instaladas?

  9. Hola, Saludos:

    Veras soy nuevo en esto de Ubuntu(🙂 ), acabo de migrar ya sabes de que OS, así que ire directo al grano:

    Veráz por motivos de estudio necesito programar en C++, en güindos lo hacía en Visual C++, pero en Ubuntu las cosas son distintas, asi que me entere de GCC.

    Lo primero que hice fue poner en una terminal :

    $ sudo apt-get install build-essential

    Bueno como tengo conexion a internet, se descargaron supongo que los paquetes y todo termino muy bonito.
    Luego mi problema surge en que en ningun lado aparece algun ícono de GCC, así que no se como utilizar la aplicación y así que no puedo programar.
    Así que investigando llegue a tu blog, y complete la instalacion de los demas paquetes del Synaptic, y bueno no se que más hacer.

    Por favor te pido que me digas donde programa, lo cual si se el problema como es que ejecuto G++, segundo como se haría la compilación no quiero problemas mayores.

    Gracias de anticipado!!!

    Kellvy!!

  10. Hola Kellv, verás GCC no es un programa en sí, es decir, no es un programa con ventanitas al estilo VisualC++. gcc o g++ son las órdenes que se dan por terminal para que te compile tus programas de C/C++ y puedas ejecutarlos. Mejor dicho, cuando en VisualC++ le das al botón de “BuildAll” lo que haces es llamar a gcc o a g++, sí también en windows, aunque no lo creas.
    Así que para hacerlo como explico en el post lo que tienes que hacer es escribir tu programa con un editor, como gedit y luego abrir terminal y llamar a gcc o a g++ como explico en el post para luego poder ejecutarlo si no te salen errores de compilación.
    Otra forma de hacerlo de forma más sencilla es programar con un IDE (el MFC o VisualC++, como tú le llamas es un IDE para Windows). En linux tienes infinidad de IDES: Anjuta, NetBeans, Eclipse, IDE++, etc,etc.
    Hice recientemente un videotutorial sobre easyeclipse y C++ que te puede venir muy bien, lo encontrarás en la sección Video-Tutoriales de mi apartado Categorias, en la columna de tu derecha.
    Saludos🙂

  11. Gracias. Parece que no me complicare y obtare por IDE, parece que es muy sencillo (Easyeclipse). Pero disculpa mi ignorancia, las librerias intalas anteriormente deben quedar no?.

    Segundo yo por ahora solo necesito C++, son necesarias las de OpenGL

  12. Hola, sí las libreias que instalaste no las puedes quitar porque cuando le des al botón de compilar en el IDE que quieras buscará gcc o g++ y no lo encontrará y pues como que lo vas a tener muy pero que muy chungo para compilar😉
    Las de OpenGL no hacer falta que las instales.
    Saludos chaqval🙂

  13. Saludos!

    Disculpa q te vuelva a molestar he seguido el videotutorial porque lo encuentro bien práctico, pero veráz hay problemas y es que los cambios aveces no son del todo faciles de sobrellevar pero el software privativo no va conmigo asi que persistire hasta el final con Ubuntu.

    Mira este es un código que va de maravilla en Visual C++, es corto par no molestar, pero a la hora de copiarlo en Easyeclipse pos no va!:

    #include

    void main(){

    int num, sd,d;

    cout>num;

    while(num>0){

    d=num%10;

    num=num/10;

    sd=sd+d;

    }

    cout

  14. oye muchas gracias por la informacion.
    La verdad es que recien me estoy haciendo un blog y decidi colocar algo parecido en el acerca del gcc, espero no te moleste jejeje…

    salu2…

  15. hola Cristobal
    he leido varias de tus respuestas y la verdad me he
    quedado complacido por la forma de explicar.

    Sin meter mas floro… mmm… Donde puedo encontrar una libreria grafica para ubuntu tengo el 7,10 y tengo a prueba el 8.04 , por siacaso pero mi requisito es por la libreria grafica para ubuntu como te dije la verda me urge y si en verdad pocrias ayudarme bastante con un “link” a una pagina en donde me muestre como puedo programar con la bibliteca y de donde puedo descargarmela.

    Desde ya muchas gracias Richard.

  16. Una cosa mas para aclarar

    La biblioteca grafia es por lo pronto para hacer por ejemplo circulos cuadrados triangulos es decir figuras en 2D y si esta incluido para hacer en 3D seria perfecto.

    Gracias

    Richard

  17. Eso con respecto a la Biblioteca…

    Y una ultima consulta q creo q es mas facil q la anterior es si ubuntu 8.04 puedo iniciar desde mi USB (2Gb) por que he oido y visto un poco de los sistemas operativos portables y la verda me hace falta uno asi para no depender de Windos :S:S gracias.
    saludos
    Richard

  18. Hola, cuando coloco esto:

    $ sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev ftgl-dev gle-doc glut-doc glutg3 glutg3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa libgl1-mesa-dev libgl1-mesa-dri libglut3 libglut3-dev mesa-common-dev mesa-demos mesa-swrast-source mesa-utils

    me tira los siguientes errores…

    Leyendo lista de paquetes… Hecho
    Creando árbol de dependencias
    Leyendo la información de estado… Hecho
    freeglut3 ya está en su versión más reciente.
    fijado freeglut3 como instalado manualmente.
    gle-doc ya está en su versión más reciente.
    libglu1-mesa ya está en su versión más reciente.
    libglu1-mesa-dev ya está en su versión más reciente.
    fijado libglu1-mesa-dev como instalado manualmente.
    El paquete libgl1-mesa no está disponible, pero algún otro paquete hace referencia
    a él. Esto puede significar que el paquete falta, está obsoleto o sólo se
    encuentra disponible desde alguna otra fuente
    E: El paquete libgl1-mesa no tiene candidato para su instalación

    Que puedo hacer para solucionarlo?. Gracias

  19. Hola Arturo, este blog hace mucho que lo dejé y el post es algo más que antiguo, así que el nombre de algunas librerías han cambiado😉
    Cambia libgl1-mesa por lubglu1-mesa
    Si tienes más problemas con los nombres busca en Synaptic nombres parecidos.
    Saludos🙂

  20. buen dia. segui los pasos que pusiste para instalar opengl, pero a la hora de compilar me marca un error, no se si tu me puedas decir que onda, te lo dejo aqui:

    freeglut (./ventana): ERROR: Internal error in function fgOpenWindow
    X Error of failed request: BadWindow (invalid Window parameter)
    Major opcode of failed request: 4 (X_DestroyWindow)
    Resource id in failed request: 0x0
    Serial number of failed request: 30
    Current serial number in output stream: 33
    saludos, y de antemano, gracias!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s