Hola buenas y gracias a todos por vuestro tiempo. Bien tengo una duda y es que programo en C desde ubuntu compilando con gcc, si quisiera hacer un programa que funcionara en windows que tendría que hacer?.Es que he oído por ahí que al crear un ejecutable debe funcionar en todos los equipos, pero a mi no me pasa. Como hacer un programa que funciones en diferentes equipos? Gracias.
Enviado desde mi Orange Hi 4G mediante Tapatalk
http://stackoverflow.com/questions/1714245/difference-between-if-definedwin32-and-ifdefwin32http://stackoverflow.com/questions/662084/whats-the-difference-between-the-win32-and-win32-defines-in-cUn ejemplo de uso:
#if defined (__unix__)
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#elif defined (_WIN32)
#include <winsock2.h>
#include <conio.h>
#include <windows.h>
#include <winuser.h>
#include <winbase.h>
#endif
No puedes hacer un ejecutable único a no ser que hablemos de java o lenguajes interpretados como Python, Perl, etc...
En el caso de C debes especificarle al compilador las opciones que tienes. En este ejemplo si compilas en Linux, GCC te compilará las librerías:
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
En el caso de que compiles en Windows, GCC compilará:
#include <winsock2.h>
#include <conio.h>
#include <windows.h>
#include <winuser.h>
#include <winbase.h>
E ignorará las de Unix.
Como te he dicho, no puedes hacer un ejecutable único, pero sí que puedes hacer un programa que se pueda compilar en los dos sistemas sin fallos. Un buen ejemplo es el código de Netcat.