PDA

View Full Version : Chiamare Exe da Linux


omniaforever
11-02-2011, 09:10
Salve, avrei una domanda un po' particolare.
Ho sviluppato un'applicazione console in ambiente windows visual studio c++.

Adesso vorrei farla girare su linux con gcc++.

La maggiorparte delle librerie esterne usate nel mio progetto esistono anche per linux, mentre per altre non posso farci nulla.

Tuttavia i metodi che mi forniscono queste ultime librerie sono "raggruppati" in un eseguibile (perchè funzionano a 32 bit, ma la mia applicazione su windows doveva funzionare a 64 bit, quindi ho creato un eseguibile esterno che viene chiamato dall'applicazione principale attraveso una semplice System).

Adesso, nel caso del "porting" su linux, il mio problema si ricondurrebbe al dover lanciare dal progetto principale, attraverso la "System", il mio eseguibile, che per ovvi motivi sotto linux non può funzionare.

L'idea più banale è quella di installare una macchina virtuale windows su linux e lanciare quell'eseguibile usando l'indirizzo della macchina virtuale.
Ma vorrei evitare di installare una macchina virtuale.
Ho sentito parlare di wine e mi chiedo se c'è un modo per "virtualizzare solo quell'eseguibile", cioè fare in modo che chiamando la mia System lanci e faccia funzionare l'eseguibile "virtualizzato da wine?"...non so se mi sono spiegato bene..
avete altre idee eventualmente?

grazie

pabloski
11-02-2011, 11:57
in pratica c'è una parte del programma che non può essere portata su linux?

in questo caso la prima scelta sarebbe di trovare dei sostituti per le librerie che non ci sono per linux o arrangiarsi da soli

altrimenti puoi ovviamente raggruppare tutto ciò che non è portabile all'interno di un eseguibile da far girare sotto wine

e il manuale di wine ci dice anche che "wine PROGRAM [ARGUMENTS...]"

quindi usi system("wine nome-exe") oppure usi una delle exec ( imho preferibili a system )

omniaforever
11-02-2011, 13:33
in pratica c'è una parte del programma che non può essere portata su linux?

in questo caso la prima scelta sarebbe di trovare dei sostituti per le librerie che non ci sono per linux o arrangiarsi da soli

altrimenti puoi ovviamente raggruppare tutto ciò che non è portabile all'interno di un eseguibile da far girare sotto wine

e il manuale di wine ci dice anche che "wine PROGRAM [ARGUMENTS...]"

quindi usi system("wine nome-exe") oppure usi una delle exec ( imho preferibili a system )
è proprio quello che volevo mi dicessi..thanks