Strona 1 z 1

[+] Program C napisany w Borlandzie (Windows) i kompilacja na Linuksie (geany)

: 19 września 2012, 20:45
autor: willy
Witam.
N
apisałem taki oto program:

Kod: Zaznacz cały

#include <stdio.h>
#include <conio.h>
int main()
{
    char imie[20];
    int wiek;
    puts("Podaj imie");
    gets(imie);
    puts("Podaj wiek");
    scanf("%d",&wiek);
    printf("Twoje imie to %s i masz %d lat",imie, wiek);
    getch();
    return 0;
}
Po kompilacji pojawiają mi się takie komunikaty:

Kod: Zaznacz cały

gcc -Wall -c "p.c" (w katalogu /home/willy/Pulpit)p.c:1:1: error: too many decimal points in number
p.c:1: error: expected identifier or ‘(’ before numeric constant
In file included from /usr/include/stdio.h:75,
                 from p.c:2:
/usr/include/libio.h:332: error: expected specifier-qualifier-list before ‘size_t’
/usr/include/libio.h:364: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/libio.h:373: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/libio.h:495: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_sgetn’
In file included from p.c:2:
/usr/include/stdio.h:296: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:302: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:314: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:321: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:363: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:365: error: format string argument not a string type
/usr/include/stdio.h:367: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:639: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:642: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:652: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:682: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread’
/usr/include/stdio.h:688: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite’
/usr/include/stdio.h:710: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread_unlocked’
/usr/include/stdio.h:712: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite_unlocked’
p.c:3:19: error: conio.h: Nie ma takiego pliku ani katalogu
p.c: In function ‘main’:
p.c:13: warning: implicit declaration of function ‘getch’
Kompilacja nie powiodła się

Wersja systemu:

Kod: Zaznacz cały

6.0.5.

Jądro:

Kod: Zaznacz cały

Linux debian-lap1 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686 GNU/Linux

Zmieniłem Windowsa, na którym programowałem w Borlandzie na Geany. W Borlandzie taki program działał, a tutaj nie, stąd moja prośba, o napisanie tego programu tak jak powinien być napisany. Chciałbym go potraktować jako wzór do dalszych programów.
Z góry dziękuję za pomoc.

: 19 września 2012, 21:03
autor: Rafal_F
Co to za wersja Debiana?
  1. conio.h to zdaje się wynalazek borlanda. Wywal ją razem z getch().
  2. Po usunięciu tych linijek spróbuj to skompilować w konsoli, bez geany:

    Kod: Zaznacz cały

    gcc -Wall -c plik.c

    Jak się uda plik wynikowy powinien mieć nazwę a.out.

: 19 września 2012, 21:18
autor: willy
Usunąłem conio.h oraz getch() i dalej to samo. Po kompilacji w konsoli wyszło to, czyli chyba te same komunikaty:

Kod: Zaznacz cały

p.c:1:1: error: too many decimal points in numberp.c:1: error: expected identifier or ‘(’ before numeric constant
In file included from /usr/include/stdio.h:75,
                 from p.c:2:
/usr/include/libio.h:332: error: expected specifier-qualifier-list before ‘size_t’
/usr/include/libio.h:364: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/libio.h:373: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/libio.h:495: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_sgetn’
In file included from p.c:2:
/usr/include/stdio.h:296: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:302: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:314: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:321: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:363: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:365: error: format string argument not a string type
/usr/include/stdio.h:367: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:639: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:642: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:652: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/stdio.h:682: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread’
/usr/include/stdio.h:688: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite’
/usr/include/stdio.h:710: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread_unlocked’
/usr/include/stdio.h:712: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite_unlocked’

: 19 września 2012, 21:27
autor: Rafal_F
Podstawowa rzecz, pakiet:

Kod: Zaznacz cały

build-essential
zainstalowany?

: 19 września 2012, 21:51
autor: willy
Tak, zainstalowany.

: 19 września 2012, 22:10
autor: Rafal_F
Te błędy są bez sensu. I to jest cały plik jaki chcesz kompilować? Nie usunąłeś nic, żadnych komentarzy itp. przed wysłaniem posta?
Plik tworzyłeś pod Windowsem czy Linuksem? Utwórz nowy plik i skopiuj zawartość z tego forum i spróbuj skompilować. Czepiam się, ale błąd:

Kod: Zaznacz cały

error: too many decimal points in number
Występuje gdy wstawimy za dużo kropek np: 1.1.1, drugi błąd też wskazuje na to, że kompilator "widzi" tam gdzieś liczby.

: 19 września 2012, 22:18
autor: willy
Problem rozwiązany. Wstawiłem datę i nie wstawiłem komentarza. Przepraszam za zamieszanie.
Rafal_F, dziękuję za pomoc.