Si vas a copiar

.. y pegar este post en tu web o blog personal, por favor te pido que coloques el link del post de donde lo copiastes:

Fuente:

Mostrando las entradas con la etiqueta C-CPP. Mostrar todas las entradas
Mostrando las entradas con la etiqueta C-CPP. Mostrar todas las entradas

Compilar wxWidgets 2.9.2 en Ubuntu

5 de abril de 2012 No hay comentarios.:
Con el siguiente comando:


../configure --with-gtk=2 --disable-debug --enable-unicode --disable-universal --disable-monolithic --enable-gui --disable-shared --enable-exceptions --without-odbc --without-opengl --enable-xrc --enable-html --with-regex=builtin --enable-richtext --disable-mediactrl --enable-aui


Recuerda pasar los argumentos que necesites

Publicado en tttony.blogspot.com

Compilar wxWidgets 2.9.2 en Mac OS 10.6

No hay comentarios.:
Con el siguiente comando:

../configure --with-osx_carbon --disable-debug --enable-unicode --disable-universal --disable-monolithic --enable-gui --disable-shared --enable-exceptions --without-odbc --without-opengl --enable-xrc --enable-html --with-regex=sys --enable-richtext --disable-mediactrl --enable-aui --enable-ribbon --enable-propgrid --enable-stc CFLAGS=-arch i386 CXXFLAGS=-arch i386 LDFLAGS=-arch i386 OBJCFLAGS=-arch i386 OBJCXXFLAGS=-arch i386 --with-macosx-version-min=10.5 CXX=g++ CC=gcc LD=g++


Es muy importante pasar el argumento --with-macosx-version-min=10.5, sino tendras problemas

Publicado en tttony.blogspot.com

Compilar wxWidgets 2.9.2 en Windows 7 x64 con Cygwin y x86_64-w64-mingw32

6 de diciembre de 2011 No hay comentarios.:
Bueno por fin he podido compilar wxWidgets 2.9.2 con Cygwin/x86_64-w64-mingw32 en Windows 7 x64

Con el siguiente comando pude compilarlo:


../configure CFLAGS=-m64 CPPFLAGS=-m64 LDFLAGS=-m64 --host=x86_64-w64-mingw32 --build=x86_64-pc-cygwin --with-msw --disable-debug --enable-unicode --disable-universal --disable-monolithic --enable-gui --disable-shared --enable-exceptions --without-odbc --without-opengl --enable-xrc --enable-html --with-regex=builtin --enable-richtext --disable-mediactrl --disable-aui --enable-ribbon --enable-propgrid --enable-stc --enable-std_string --enable-std_iostreams --enable-stl --silent --enable-stc CXX=x86_64-w64-mingw32-g++.exe CC=x86_64-w64-mingw32-gcc.exe LD=x86_64-w64-mingw32-g++.exe


Como pueden ver, hay que pasar el argumento -m64 para que lo compile para la plataforma x64 y por supuesto ya los demas argumentos son cuestion de necesidad


Publicado en tttony.blogspot.com

Solucion al: Error de la aplicacion 0xc000007b en wxWidgets

5 de diciembre de 2011 3 comentarios:
OJO!
esto NO es una solucion para el pantallazo azul con ese mismo codigo, AQUI puedes encontrar la "posible" solucion pero esta en ingles

Mensaje de error al ejecutar el programa
Si haz compilado un programa con wxWidgets (solo la version 2.9.x soportan 64bits) para la arquitectura de 64bit usando el compilador de Visual Studio pero compilando dicho programa desde otra IDE como por ejemplo: DialogBlocks, wxDev-C++, etc... en mi caso he usado en este ejemplo el DialogBlocks 4.40

No hay mensaje de error en la compilacion ni del vinculador (link.exe), la compilacion es perfecta pero cuando ejecutas el programa te aparece el error 0xc000007b

Buscando y buscando en internet di con la solucion, el error es culpa del archivo¿? COMCTL32.DLL  que no carga la version 64bits de dicho DLL, como lo muestra esta imagen de la dependencias del programa compilado en 64bits usando el programa Dependency Walker


Dependency Walker te dice que archivos son cargados por los programas

Como pueden ver en la imagen el archivo COMCTL32.DLL que se carga es la version x86/32bits y y los demas archivos dependendientes son de 64bits

En Visual Studio se encarga de incrustar el archivo manifest que es, el que se encarga de "decirle" al ejecutable de 64bits que cargue el archivo COMCTL32.DLL en su version de 64bits

Pero como dije anteriormente si usas un IDE que no es Visual Studio pero usas su compilador (cl.exe, link.exe, nmake.exe), hasta los momentos no he podido incrustar el archivo manifest ya sea pasando un parametro al vinculador (link.exe) o usando el Makefile.vc (en el link muestran como hacerlo con un makefile pero no me ha dado resultado :(

Por los momentos se puede hacer usando un archivo .bat que llame al archivo mt.exe, como indican aqui

Si no está realizando una generación incremental (/INCREMENTAL:NO), puede incrustar directamente el manifiesto utilizando una línea de comandos similar a la siguiente como paso posterior a la generación:

Para un ejecutable EXE:

mt.exe -manifest MyApp.exe.manifest -outputresource:MyApp.exe


Para una libreria dinamica DLL:

mt.exe -manifest MyLibrary.dll.manifest -outputresource:MyLibrary.dll


El ejecutable mt.exe esta en el directorio Bin\x64 de el Microsoft SDKs, este es el contenido del archivo manifest.bat que tengo en el directorio ejecutable:


"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\mt.exe" -manifest wx64.exe.manifest -outputresource:wx64.exe


Y ya luego el programa se ejecuta como debe ser:




WX64.rar es el proyecto de ejemplo

La version wxWidgets que use fue la 2.9.2 compilado con la solucion wx_vc7.sln que esta en el directorio build\msw con unicode, estatico, release, 64bits, de todas maneras en el makefile veras las opciones y recuerda editar los directorios


Publicado en tttony.blogspot.com

Mensaje de error: 'undefined reference to' en C/C++

10 de septiembre de 2009 No hay comentarios.:
Cuando compilas un programa en C/C++ y te parece este error:

undefined reference to 'NOMBRE_DE_UNA_FUNCION@18'


El error no se debe ni al IDE ni el compilador tan solo tienes que agregar la libreria .a o .lib de dicha funcion al linker

En Code::Blocks es asi:

Menu Project -> Build options -> Pestaña: Linker settings -> EN: Link libraries -> Click en: Add -> Busca la libreria relacionada con la funcion que normalmente(obligatoriamente) debe decirte la documentacion del mismo


En Dev-C++ 4.9.9.2 y wxDev-C++ 7.0.0.92

Menu Project -> Project options -> Parameters -> En: Linker agrega la libreria



Publicado en tttony.blogspot.com

Saber si es Win32/Win64

7 de septiembre de 2009 No hay comentarios.:
Buscando y buscando en la web he encontrado varias meneras no seguras de saber con C/C++ si el sistema operativo es de 32 o 64 bits:

typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);

LPFN_ISWOW64PROCESS fnIsWow64Process;

BOOL IsWow64()
{
     /**
        Minimum supported client Windows Vista, Windows XP with SP2
        Minimum supported server Windows Server 2008, Windows Server 2003 with SP1
        Header Winbase.h (include Windows.h)
        Library Kernel32.lib
        DLL Kernel32.dll
     **/
    BOOL bIsWow64 = FALSE;

    fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
                     GetModuleHandle(TEXT("kernel32")),"IsWow64Process");
  
    if (NULL != fnIsWow64Process)
    {
        HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION, false, GetCurrentProcessId());
        if (!fnIsWow64Process(hProc,&bIsWow64))
        {
            // handle error
            ShowErrMsg(GetLastError());
        }
        CloseHandle(hProc);
    }
    return bIsWow64;
}


Solo funciona en: Windows Vista, Windows XP with SP2


Publicado en tttony.blogspot.com

Problemas con wxDev-C++ 7 RC5

18 de junio de 2009 No hay comentarios.:
Tengo problemas al compilar un simple proyecto de prueba en wxDev-C++

[Resource Error] can't popen `gcc -E -xc -DRC_INVOKED -IC:/wxcpp/include/common -IC:/wxcpp/include Objects/MingW/WXFRAM~1.RC': Invalid argument

D:\tony\programming\Projects\dev-cpp\wxFrmae\Makefile.win [Build Error] exe: *** [Objects/MingW/wxFrame_private.res] Error 1


He leido algunos tutoriales manuales y etc. y no consigo arreglar ese problema, he cambiado el directoirio de instalacion a: C:\wxcpp he agregado directorios include y no se resuelve el problema.

Abri este post para futuras actualizaciones acerca de este problema


EDITO (10/07/09): sabia que habia algo mal, asi que formatee la maquina y todo esta bien hasta los momentos, ese error debio ser porque tenia instalado algo que creaba un conflicto

Buscar en el Blog



PUBLICIDAD