Автор Тема: Компилиране на една Програмка  (Прочетена 1241 пъти)

Vatman

  • Напреднали
  • *****
  • Публикации: 315
  • Distribution: openSuSE 11.3
  • Window Manager: KDE 4.4
    • Профил
    • WWW
С един приател искахме да видим комповете ни колко бързо ще преброят да 4 милярда (мен ми отне извесно време). Момчето написа следния сорс (програмата не е лицензирана под GPL '<img'>  '<img'>  '<img'> )
Цитат
#include <stdio.h>
#include <conio.h>

int main()
{
unsigned long int i, sum;

for(sum=i=0;i<4200000000;i++)
{
 sum++;
}
printf("\n suma=%d",sum);
return 0;
}

Под бозата се компилира, но под Линукс не ще. Какво трябва да се направи да се портне. Дава ми
Цитат
Desktop> gcc Text\ File.c
Text File.c:2:19: error: conio.h: No such file or directory
Text File.c: In function ‘main’:
Text File.c:8: warning: this decimal constant is unsigned only in ISO C90
Text File.c:10: error: stray ‘\194’ in program
Text File.c:10: error: stray ‘\160’ in program
Text File.c:14:2: warning: no newline at end of file
Активен

Момчета, нищо не разбирам от компютри, научете ме да съм хакер.

sunshine

  • Напреднали
  • *****
  • Публикации: 177
    • Профил
Компилиране на една Програмка
« Отговор #1 -: Jan 10, 2007, 10:52 »
липсва ти библиотека "conio.h" която е често използвана във M$ Windows ако махнеш реда #include <conio.h> според мен ще тръгне да работи
дугото виж опциите на gcc да компилираш
обикновено достатачно е само

gcc File.c или
gcc File.c -o File където File е името на изходния файл

за повече подробности виж описанието на gcc

за другите "unsigned long" пробвай със "long long"


аз бих решил проблема най лесно с цикъл в цикъла
 '<img'>



Активен

astronom

  • Напреднали
  • *****
  • Публикации: 254
    • Профил
Компилиране на една Програмка
« Отговор #2 -: Jan 10, 2007, 10:57 »
Цитат (Vatman @ Ян. 10 2007,10:24)
Text File.c:2:19: error: conio.h: No such file or directory

Този файл е DOS-овски. Няма аналог в Unix/Linux.

Цитат (Vatman @ Ян. 10 2007,10:24)

Text File.c:8: warning: this decimal constant is unsigned only in ISO C90

Предполагам, че пищи заради 4200000000. Опитай да сложиш  UL след константата. Т.е. 4200000000UL и пробвай пак.

Цитат (Vatman @ Ян. 10 2007,10:24)

Text File.c:14:2: warning: no newline at end of file

Това е предупреждение, защото файла ти е с Windows формат, т.е. реда се завършва с Carridge Return, докато в Linux е Line Feed.

Другите не са ми познати, но опитай да си смениш формата на файла.



Активен

Г. Д. Сотиров

sunshine

  • Напреднали
  • *****
  • Публикации: 177
    • Профил
Компилиране на една Програмка
« Отговор #3 -: Jan 10, 2007, 11:00 »
Text File.c:14:2: warning: no newline at end of file
един нов ред накрайа на файла върши чудесна работа за това

иначе и без него няма проблеми
Активен

SHTILL

  • Напреднали
  • *****
  • Публикации: 273
    • Профил
Компилиране на една Програмка
« Отговор #4 -: Jan 12, 2007, 23:32 »
Аз промених 4200000000 със 4200000000UL, gcc test.c и се получава a.out. Какво да го правя  '<img'>
Активен

http://www.bezdom.info - СПАСИ ПРИЯТЕЛ...
Debian SiD KDE 3.5.9
Kernel 2.6.25-2-686
Inter Celeron D 2.6 GHz, Albatron PX915P4C Pro, ATI Radeon X300/X550 128MB - PCi-E, 2x512 MB RAM (Dual Channel - 400M Hz) 80 GB HDD Western Digital - ATA

nikoni

  • Напреднали
  • *****
  • Публикации: 40
  • Distribution: Slackware
  • Window Manager: Gnome
    • Профил
Компилиране на една Програмка
« Отговор #5 -: Jan 12, 2007, 23:52 »
Цитат (SHTILL @ Ян. 13 2007,00:32)
Аз промених 4200000000 със 4200000000UL, gcc test.c и се получава a.out. Какво да го правя  '<img'>

a.out e програмата. Стартирай я.

gcc -o program source.c
За да компилираш source.c do program

или
mv a.out program

-o върши горния rename.
Активен

SHTILL

  • Напреднали
  • *****
  • Публикации: 273
    • Профил
Компилиране на една Програмка
« Отговор #6 -: Jan 13, 2007, 00:02 »
Мерси, стана '<img'>
Цитат
suma=-94967296
Активен

http://www.bezdom.info - СПАСИ ПРИЯТЕЛ...
Debian SiD KDE 3.5.9
Kernel 2.6.25-2-686
Inter Celeron D 2.6 GHz, Albatron PX915P4C Pro, ATI Radeon X300/X550 128MB - PCi-E, 2x512 MB RAM (Dual Channel - 400M Hz) 80 GB HDD Western Digital - ATA