Repository 32bit  Forum
Repository 64bit  Wiki

bash: ./show-desk: cannot execute binary file [RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza dell'ultima regola porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

bash: ./show-desk: cannot execute binary file [RISOLTO]

Messaggioda d4z_c0nf » mer mag 28, 2008 17:27

Ragazzi mi capita una cosa strana:

Uso cairo-dock e ho trovato un programma in C per fare lo Show Desktop, allego il codice:

Codice: Seleziona tutto
#include <X11/Xatom.h>
#include <X11/Xlib.h>

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   Display *d;
   Window root;
   Atom _NET_SHOWING_DESKTOP, actual_type;
   int actual_format, error, current;
   unsigned long nitems, after;
   unsigned char *data = NULL;

   /* Open the default display */
   if(!(d = XOpenDisplay(NULL))) {
      fprintf(stderr, "Cannot open display \"%s\".\n", XDisplayName(NULL));
      exit(EXIT_FAILURE);
   }

   /* This is the default root window */
   root = DefaultRootWindow(d);

   /* find the Atom for _NET_SHOWING_DESKTOP */
   _NET_SHOWING_DESKTOP = XInternAtom(d, "_NET_SHOWING_DESKTOP", False);

   /* Obtain the current state of _NET_SHOWING_DESKTOP on the default root window */
   error = XGetWindowProperty(d, root, _NET_SHOWING_DESKTOP, 0, 1, False, XA_CARDINAL,
                              &actual_type, &actual_format, &nitems, &after, &data);
   if(error != Success) {
      fprintf(stderr, "Received error %d!\n", error);
      XCloseDisplay(d);
      exit(EXIT_FAILURE);
   }

   /* The current state should be in data[0] */
   if(data) {
      current = data[0];
      XFree(data);
      data = NULL;
   }

   /* If nitems is 0, forget about data[0] and assume that current should be False */
   if(!nitems) {
      fprintf(stderr, "Unexpected result.\n");
      fprintf(stderr, "Assuming unshown desktop!\n");
      current = False;
   }

   /* Initialize Xevent struct */
   XEvent xev = {
      .xclient = {
         .type = ClientMessage,
         .send_event = True,
         .display = d,
         .window = root,
         .message_type = _NET_SHOWING_DESKTOP,
         .format = 32,
         .data.l[0] = !current /* That's what we want the new state to be */
      }
   };

   /* Send the event to the window manager */
   XSendEvent(d, root, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev);

   XCloseDisplay(d);
   exit(EXIT_SUCCESS);

   return 0;
}


Lo compilo così come l'avevo compilato quando avevo la Slackware 12:
Codice: Seleziona tutto
gcc -c show-desk.c -o show-desk


lo rendo eseguibile,
vado per lanciarlo e ... :
Codice: Seleziona tutto
bash: ./show-desk: cannot execute binary file


Per pignoleria ho voluto ricompilarlo con le "nuove" glib, la versione compilata con le glib della 12 funzionava anche con la 12.1.

Idee?
rock
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1266
Iscritto il: mar mar 14, 2006 19:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: current64
Kernel: 3.2.13
Desktop: awesome 3.4.11

Re: bash: ./show-desk: cannot execute binary file [RISOLTO]

Messaggioda d4z_c0nf » mer mag 28, 2008 18:58

Ragazzi googlando un po', ho ritrovato il sito da cui avevo preso questo codice, e dove c'era anche il modo "giusto" per compilarlo.

Codice: Seleziona tutto
gcc -o show-desk -lX11 show-desk.c


quindi mi ero sbagliato sul fatto che l'avevo compilato allo stesso modo ;).
sorry

rock
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1266
Iscritto il: mar mar 14, 2006 19:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: current64
Kernel: 3.2.13
Desktop: awesome 3.4.11


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti