koodit vanhaan dos ohjelmaan c:eet ja h:oot ja makefile on. olen devcpp:n komentorivi ohjelmilla kokeillut kaikkia keinoja, mutta mitään ei tapahdu. ei tule .o/.obj eikä com/exe juttua.
olen noviisi ohjelmoinnissa mutta osaan käyttää asioita ja juttuja.
voin laittaa vaikka kaikki koodit/makefile tänne.
pikaista vastausta odotan. jos joku viitsisi alkaa.
kiitos etukäteen.
Mitä tarkoittaa mitään ei tapahdu?
ei tule .o/.obj tai .com/.exe tiedostoa.
tässä makefile, tämä on niin vanha juttu,,,,,
#picky warning checks CC = gcc -Wall -W -ansi -pedantic #CC = gcc .SUFFIXES: .C .$(OBJEXT) MYOBJECTS = \ ivt.o \ mszp.o \ mszpinfl.o \ support.o all: ivt2html mszpdump ivtdump ivt2html: $(MYOBJECTS) ivt2html.o $(CC) -o ivt2html ivt2html.o $(MYOBJECTS) ivtdump: $(MYOBJECTS) ivtdump.o $(CC) -o ivtdump ivtdump.o $(MYOBJECTS) mszpdump: $(MYOBJECTS) mszpdump.o $(CC) -o mszpdump mszpdump.o $(MYOBJECTS) %.o: %.c $(CC) -c $*.c clean: rm -rf *.o mszpdump ivtdump ivt2html # DO NOT DELETE THIS LINE -- make depend depends on it.
Mod. lisäsi kooditagit!
Ihanko oikeasti on DOS-ohjelmassa tuollainen Makefile, jossa on Unix-komentoja ja kohdetiedoston pääte ei ole exe?
Yksinkertaisesti voit kääntää ohjelman kerrallaan ilman Makefilea, esimerkiksi ivt2html:
gcc -Wall -ansi -pedantic ivt.c mszp.c mszpinfl.c support.c ivt2html.c -o ivt2html.exe
Tai voit tehdä C-projektin, johon otat nuo viisi kooditiedostoa mukaan, ja sen pitäisi kääntyä ihan graafisesta käyttöliittymästä oletusasetuksilla.
Ihan toinen asia tietysti on, kääntyykö vanha DOS-ohjelma Windowsissa ollenkaan tai toimiiko se oikein. Voi olla, että joudut korjaamaan ohjelmaa paljonkin. Windows-kääntäjä ei tuota DOS-ohjelmia.
Joka tapauksessa sellaista vaihtoehtoa ei ole kuin "mitään ei tapahdu", vaan saat vähintään jonkin virheilmoituksen, joka on tärkeä lukea ja kertoa kysymyksissä.
nothing to done for Makefile.
on maken error
Yleensä tulee käyttää sellaista kääntäjää tai sellaista versiota, joka on ollut käytössä koodin kirjoittamisen aikana, koska jotain saattaa muuttua myöhemmin.
Ei voida välttämättä taata, että jokin uusi gcc osaa kääntää DOS:lle ohjelman.
Ideaalisti käännät ohjelman samalla versiolla, mille se aiotaan ajettavankin.
Minkälaista komentoa kokeilit? Huomaathan, että make ei ota parametria, eli ei kuulu kirjoittaa make Makefile vaan pelkästään make. Lisäksi, kuten jo sanoin, tuo Makefile ei näytä DOSille suunnatulta, koska tiedostoille ei ole määritelty päätettä. Tietysti voi olla myös, että jokin make-versio on automaattisesti tulkinnut näihin jonkin päätteen. Suosittelen joka tapauksessa nyt kääntämään ohjelmat suoraan oikealla gcc-komennolla.
installation problen cannot exec cc1
Onkohan sinun gcc asennettu oikein? Mitä sanoo gcc --version?
no input files
tässä .c
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include "support.h" #include "ivt.h" /* the main program */ int main(int argc, char **argv) { FILE *ivt = fopen(argv[1],"rb"); ivthdr header; globalivtidx index; mszpentry *chain=NULL,*t; if(!ivt) { fprintf(stderr,"couldn't open a file for input.\nUsage ivt2html filename\n"); return 1; } wvGetivthdr(ivt,&header); if(header.Magic!=IVTHEADER) { fprintf(stderr,"not a ivt file\n"); return 1; } fseek(ivt,header.DirectoryStart,SEEK_SET); wvGetglobalivtidx(ivt,&index); if(index.magic != IVTINDEX) { fprintf(stderr,"Bad maths. %X != %X\n",index.magic, IVTINDEX); exit(1); } wvGetmszpentryChain(ivt,&chain,&index); /* process the files */ for(t = chain; t; t=t->next) wvOutputHtml(ivt,t); wvReleasemszpentryChain(&chain); fclose(ivt); return(0); }
Miksi et nyt käytä suoraan gcc-komentoa, kuten jo neuvoin?
noh.
gcc: installation problem, cannot exec `cc1': No such file or directory
Ehkä PATH on väärin asetettu tai jotain.
Komentoriviltä kääntämiseen kannattaa kokeilla jotain komentoriviltä käytettäväksi tarkoitettua kuten MSYS2.
Metabolix kirjoitti:
Ehkä PATH on väärin asetettu tai jotain.
Komentoriviltä kääntämiseen kannattaa kokeilla jotain komentoriviltä käytettäväksi tarkoitettua kuten MSYS2.
Yleensä tämmöisessä kannattaa luultavasti poistaa koko kääntäjän asennus ja sitten tarkastaa, että käyttikö oikeita komentoja. Olen joskus asentanut GNU toolchainin väärin Ubuntu:ssa ja se johtui siitä, että sitä jaetaan eri paikoissa, joista kaikkien paikkojen antama versio ei ole paras tai se ei sovi juuri sinun versioihin. TAI et tehnyt kaikkia step:ejä, mitä asennusohjeissa sanottiin.
Mutta Windows:lla tietysti kannattaa vaan ottaa joku vakiojakelu kuten MSYS2. En muista tarkkaan, mutta minulla on mielikuva, että MSYS2:n asennukseen kuuluu vaihe, jossa pitää konfiguroida PATH.
tämä on raivostuttavan ihqa.
gcc:llä olen nyt saanut .o tiedoston.
komentorivi oli gcc ivt2html.c
Aihe on jo aika vanha, joten et voi enää vastata siihen.