Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C\C++] Visual Studio 2005

    Sto creando un programma che dovrebbe funzionare al di fuori di windows, linux e altri sistemi. Praticamente, dovrebbe essere salvato su floppy ed eseguito all'avvio del sistema.
    Vorrei sapere dunque se esiste un opzione che mi consenta di compilare l'eseguibile senza gli Header dei file EXE, semplicemente istruzioni eseguibili dal processore.
    Questo risultato lo posso ottenere utilizzando da linux il comando:

    gcc -fomit-frame-pointer -O -nostdlib -march=i386 -nostdinc -I./include -c -o main.o main.c

    Se qualcuno mi volesse chiedere perchè mi devo complicare la vita ad usare visual studio, quando c'è GCC che mi fa ottenere lo stesso risultato (in effetti ho anche provato), il motivo è che volendo inserire istruzioni assembly, all'interno del codice sorgente in C, visual studio mi permette di usare un comodo
    _asm {
    ISTRUZIONI IA32
    }
    mentre in gcc vengono utilizzate istruzioni con sintassi AT&T, con cui non ho molta familiarità...

    Grazie

  2. #2

    Re: [C\C++] Visual Studio 2005

    Originariamente inviato da AlfaOmega08
    Sto creando un programma che dovrebbe funzionare al di fuori di windows, linux e altri sistemi. Praticamente, dovrebbe essere salvato su floppy ed eseguito all'avvio del sistema.
    In sostanza vuoi scrivere un sistema operativo...
    Vorrei sapere dunque se esiste un opzione che mi consenta di compilare l'eseguibile senza gli Header dei file EXE, semplicemente istruzioni eseguibili dal processore.
    Questo risultato lo posso ottenere utilizzando da linux il comando:

    gcc -fomit-frame-pointer -O -nostdlib -march=i386 -nostdinc -I./include -c -o main.o main.c
    Hai provato a metterlo su un floppy? Funziona davvero? Credo che la versione "standard" di gcc generi codice che si appoggia comunque alle syscall... :master:
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Originariamente inviato da MItaly
    In sostanza vuoi scrivere un sistema operativo...
    Sgamato...

    Utilizzando quei parametri, GCC, utilizza la cartella include nel parametro /I, con -nostdlib, non utilizza le librerie libc e libc++, perchè queste si collegano alle syscall linux.

    Comunque, ho provato con GCC, e sono riuscito ad adattare piccoli pezzi di Assembly in AT&T inline, ma non posso continuare così tutto il sistema. Una volta compilato con GCC, uso LD come linker, poi metto tutto in un file .img con CAT e scrivo il tutto con DD. Per il momento sembra funzionare.

    Ma allora, esiste questa opzione in Visual Studio 2005?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.