|
Сборка Linux исходников под Windows для тестирования а в последствии для ARM для работы, Почемуто Cygwin не хочет понимать >gcc make |
|
|
|
May 22 2008, 06:18
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Задача стоит в том, чтоб программа заработала на АРМ контроллере, на котором работает Linux. При этом хочу использовать платформу обычных недорогих роутеров типа ASUS или Dlink? на них как я понял уже стоит линукс, нужно только докинуть исполнямый файл в прошивку.
Но это только в планах, саму программу пока нужно подкорректировать, тестировать нужно в Windows. Для сборки в EXE файл линукс исходников используют популярую Cygwin.
Скачал Cygwin, установил проект с пакетами GCC, размер около 40мб.
Запустил, зашол в папку с исходниками где находятся файл Makefile, при попытке компиляции программы :
$ gcc make gcc: make: No such file or directory gcc: no input files
при том , что в чистом линуксе проект собирается без всяких проблем.
Подскажите в чем может проблемма ? С ув.
|
|
|
|
|
May 22 2008, 06:38
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
вам же русским языком написали: Цитата make: No such file or directory не может найти make Цитата gcc: no input files естественно, компилеру нечего делать, кроме как закончить работу. Либо запускайте из той же папки, где make лежит, либо прописывайте полный путь Цитата Запустил, зашол в папку с исходниками где находятся файл Makefile Вообще-то, make и Makefile это несколько разные вещи с т.з. компутера
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 22 2008, 07:39
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(MrYuran @ May 22 2008, 10:34)  а если просто запустить make? просто: make<Enter> а ещё так: gcc -h и посмотреть, что там должно быть Код $ make c:\WinAVR-20071221\utils\bin\make: invalid option -- O c:\WinAVR-20071221\utils\bin\make: invalid option -- _ Usage: make [options] [target] ... Options: -b, -m Ignored for compatibility. -B, --always-make Unconditionally make all targets. -C DIRECTORY, --directory=DIRECTORY Change to DIRECTORY before doing anything. -d Print lots of debugging information. --debug[=FLAGS] Print various types of debugging information. -e, --environment-overrides Environment variables override makefiles. -f FILE, --file=FILE, --makefile=FILE Read FILE as a makefile. -h, --help Print this message and exit. -i, --ignore-errors Ignore errors from commands. -I DIRECTORY, --include-dir=DIRECTORY Search DIRECTORY for included makefiles. -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -k, --keep-going Keep going when some targets can't be made. -l [N], --load-average[=N], --max-load[=N] Don't start multiple jobs unless load is below N. -L, --check-symlink-times Use the latest mtime between symlinks and target. -n, --just-print, --dry-run, --recon Don't actually run any commands; just print them. -o FILE, --old-file=FILE, --assume-old=FILE Consider FILE to be very old and don't remake it. -p, --print-data-base Print make's internal database. -q, --question Run no commands; exit status says if up to date. -r, --no-builtin-rules Disable the built-in implicit rules. -R, --no-builtin-variables Disable the built-in variable settings. -s, --silent, --quiet Don't echo commands. -S, --no-keep-going, --stop Turns off -k. -t, --touch Touch targets instead of remaking them. -v, --version Print the version number of make and exit. -w, --print-directory Print the current directory. --no-print-directory Turn off -w, even if it was turned on implicitly. -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE Consider FILE to be infinitely new. --warn-undefined-variables Warn when an undefined variable is referenced.
This program built for i386-pc-mingw32 Report bugs to <bug-make@gnu.org> только непойму причем тут WinAVR-20071221, неужели он пытается make от WinAVR использовать
Сообщение отредактировал west329_ - May 22 2008, 07:41
|
|
|
|
|
May 22 2008, 07:58
|
Знающий
   
Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559

|
Цитата Задача стоит в том, чтоб программа заработала на АРМ контроллере, на котором работает Linux. При этом хочу использовать платформу обычных недорогих роутеров типа ASUS или Dlink? на них как я понял уже стоит линукс, нужно только докинуть исполнямый файл в прошивку. Не думаю что так просто. Много моментов которые надо учесть.
|
|
|
|
|
May 22 2008, 08:41
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата на них как я понял уже стоит линукс, нужно только докинуть исполнямый файл в прошивку ниже привожу график энтузиазма при реализации данной идеи (наблюдал лично) Цитата в чистом линуксе проект собирается без всяких проблем а чего ж тогда там-то не работается?
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 22 2008, 09:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(west329_ @ May 22 2008, 10:19)  Цитата(andrew_b @ May 22 2008, 09:55)  В том, что вы дали странную команду. Странно в линуксе проходит Не верю. Код $ ls M* Makefile $ gcc make i586-alt-linux-gcc: make: Нет такого файла или каталога i586-alt-linux-gcc: не заданы входные файлы $
|
|
|
|
|
May 22 2008, 10:48
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(andrew_b @ May 22 2008, 12:28)  Странно в линуксе проходит Не верю. Код $ ls M* Makefile $ gcc make i586-alt-linux-gcc: make: Нет такого файла или каталога i586-alt-linux-gcc: не заданы входные файлы $ Немного расставлю точки. Я не большой профи в линуксе и в cpp но так буквально все воспринемать не надо, Этот проект собирается на линуксе 100%, я лично собирал без сучка и задоринки, дистрибудив Mandriva 2007 free, установленны по умалчанию, из под командной строки в терминале под root, находясь в папке с исходниками проекта, набираю команду make, и все нормально компилится . Никаких дополнительных пакетов и компиляторов я не ставил. Потом мне этот проект попался с расширением EXE и с библиотекой cygwin1.dll, он прекрасно работал под Windows? функционал при этом не поменялся, так как программа написана простая. Вот и решил повторить подобное. Цитата(COMA @ May 22 2008, 10:58)  Не думаю что так просто. Много моментов которые надо учесть. Согласен, и не занимался этим бы еслиб не увидел все в живых рабочих экземплярах. Нашол пару дырок. Оказывается Cygwin не установил команду make, а нашол на компьютере установленный WinAvr и и с его make начал собирать. Доставил родной make в CYGVIN. Тепер без всяких GCC make, а просто make начинает собиратся проект но не полностью. Вот что получается. Код $ make ----------------------------------------------------- Build for platform i386-pc-linux ----------------------------------------------------- make -C cscrypt gcc -O2 -DOS_LINUX -c md5.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a md5.o ar: creating ../lib/libcscrypt-i386-pc-linux.a a - md5.o gcc -O2 -DOS_LINUX -c crc32.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a crc32.o a - crc32.o gcc -O2 -DOS_LINUX -c aes_core.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a aes_core.o a - aes_core.o gcc -O2 -DOS_LINUX -c des.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a des.o a - des.o gcc -O2 -DOS_LINUX -c bn_add.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_add.o a - bn_add.o gcc -O2 -DOS_LINUX -c bn_asm.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_asm.o a - bn_asm.o gcc -O2 -DOS_LINUX -c bn_ctx.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_ctx.o a - bn_ctx.o gcc -O2 -DOS_LINUX -c bn_div.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_div.o a - bn_div.o gcc -O2 -DOS_LINUX -c bn_exp.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_exp.o a - bn_exp.o gcc -O2 -DOS_LINUX -c bn_lib.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_lib.o a - bn_lib.o gcc -O2 -DOS_LINUX -c bn_mul.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_mul.o a - bn_mul.o gcc -O2 -DOS_LINUX -c bn_print.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_print.o a - bn_print.o gcc -O2 -DOS_LINUX -c bn_shift.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_shift.o a - bn_shift.o gcc -O2 -DOS_LINUX -c bn_sqr.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_sqr.o a - bn_sqr.o gcc -O2 -DOS_LINUX -c bn_word.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a bn_word.o a - bn_word.o gcc -O2 -DOS_LINUX -c mem.c ar -rvsl ../lib/libcscrypt-i386-pc-linux.a mem.o a - mem.o make -C csctapi gcc -O2 -DOS_LINUX -c apdu.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a apdu.o ar: creating ../lib/libcsctapi-i386-pc-linux.a a - apdu.o gcc -O2 -DOS_LINUX -c atr.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a atr.o a - atr.o gcc -O2 -DOS_LINUX -c cardterminal.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a cardterminal.o a - cardterminal.o gcc -O2 -DOS_LINUX -c ct_list.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a ct_list.o a - ct_list.o gcc -O2 -DOS_LINUX -c ct_slot.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a ct_slot.o a - ct_slot.o gcc -O2 -DOS_LINUX -c ctapi.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a ctapi.o a - ctapi.o gcc -O2 -DOS_LINUX -c icc_async.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a icc_async.o a - icc_async.o gcc -O2 -DOS_LINUX -c ifd_towitoko.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a ifd_towitoko.o a - ifd_towitoko.o gcc -O2 -DOS_LINUX -c io_serial.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a io_serial.o a - io_serial.o gcc -O2 -DOS_LINUX -c pps.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a pps.o a - pps.o gcc -O2 -DOS_LINUX -c protocol_t0.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a protocol_t0.o a - protocol_t0.o gcc -O2 -DOS_LINUX -c protocol_t1.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a protocol_t1.o a - protocol_t1.o gcc -O2 -DOS_LINUX -c t1_block.c ar -rvsl ../lib/libcsctapi-i386-pc-linux.a t1_block.o a - t1_block.o gcc -O2 -DOS_LINUX -c -Icsctapi mpcs-simples.c In file included from mpcs-simples.c:1: globals.h:190: error: parse error before "ulong" globals.h:190: warning: no semicolon at end of struct or union globals.h:193: error: parse error before '}' token globals.h:193: warning: `packed' attribute ignored globals.h:200: error: parse error before "ulong" globals.h:200: warning: no semicolon at end of struct or union globals.h:201: warning: `packed' attribute ignored globals.h:206: error: parse error before "FILTER" globals.h:206: warning: no semicolon at end of struct or union globals.h:207: warning: `packed' attribute ignored globals.h:213: error: parse error before "FTAB" globals.h:213: warning: no semicolon at end of struct or union globals.h:214: warning: `packed' attribute ignored globals.h:219: error: parse error before "PORT" globals.h:219: warning: no semicolon at end of struct or union globals.h:220: warning: `packed' attribute ignored globals.h:227: error: parse error before "ulong" globals.h:227: warning: no semicolon at end of struct or union globals.h:228: warning: data definition has no type or storage class globals.h:259: error: parse error before "PTAB" globals.h:259: warning: no semicolon at end of struct or union globals.h:280: error: parse error before "ulong" globals.h:280: warning: no semicolon at end of struct or union globals.h:282: error: 'dup' redeclared as different kind of symbol /usr/include/sys/unistd.h:35: error: previous declaration of 'dup' was here globals.h:282: error: 'dup' redeclared as different kind of symbol /usr/include/sys/unistd.h:35: error: previous declaration of 'dup' was here globals.h:287: error: parse error before "sidtabok" globals.h:287: warning: data definition has no type or storage class globals.h:288: error: parse error before "sidtabno" globals.h:288: warning: data definition has no type or storage class globals.h:291: error: 'stat' redeclared as different kind of symbol /usr/include/sys/stat.h:124: error: previous declaration of 'stat' was here globals.h:291: error: 'stat' redeclared as different kind of symbol /usr/include/sys/stat.h:124: error: previous declaration of 'stat' was here globals.h:300: warning: built-in function 'log' declared as non-function globals.h:306: error: parse error before "pcrc" globals.h:306: warning: data definition has no type or storage class globals.h:317: error: parse error before "fchid" globals.h:317: warning: data definition has no type or storage class globals.h:318: error: parse error before "ftab" globals.h:318: warning: data definition has no type or storage class globals.h:320: error: parse error before '}' token globals.h:326: error: parse error before "ulong" globals.h:326: warning: no semicolon at end of struct or union globals.h:340: error: parse error before "sidtabok" globals.h:340: warning: data definition has no type or storage class globals.h:341: error: parse error before "sidtabno" globals.h:341: warning: data definition has no type or storage class globals.h:368: error: parse error before "fchid" globals.h:368: warning: data definition has no type or storage class globals.h:369: error: parse error before "ftab" globals.h:369: warning: data definition has no type or storage class globals.h:382: error: parse error before '}' token globals.h:399: error: parse error before "ulong" globals.h:399: warning: no semicolon at end of struct or union globals.h:403: error: conflicting types for 'next' globals.h:192: error: previous declaration of 'next' was here globals.h:404: error: parse error before '}' token globals.h:414: error: parse error before "ulong" globals.h:414: warning: no semicolon at end of struct or union globals.h:417: error: parse error before "sidtabok" globals.h:417: warning: data definition has no type or storage class globals.h:418: error: parse error before "sidtabno" globals.h:418: warning: data definition has no type or storage class globals.h:419: error: parse error before "fchid" globals.h:419: warning: data definition has no type or storage class globals.h:420: error: parse error before "ftab" globals.h:420: warning: data definition has no type or storage class globals.h:423: error: conflicting types for 'ac_idx' globals.h:313: error: previous declaration of 'ac_idx' was here globals.h:430: error: conflicting types for 'next' globals.h:403: error: previous declaration of 'next' was here globals.h:430: error: conflicting types for 'next' globals.h:403: error: previous declaration of 'next' was here globals.h:431: error: parse error before '}' token globals.h:449: error: parse error before "ulong" globals.h:449: warning: no semicolon at end of struct or union globals.h:453: error: parse error before "delay" globals.h:453: warning: data definition has no type or storage class globals.h:461: error: conflicting types for 'srvid' globals.h:191: error: previous declaration of 'srvid' was here globals.h:477: error: parse error before "c35_tcp_ptab" globals.h:477: warning: data definition has no type or storage class globals.h:479: error: parse error before "ncd_ptab" globals.h:479: warning: data definition has no type or storage class globals.h:490: error: conflicting types for 'gbox_pwd' globals.h:371: error: previous declaration of 'gbox_pwd' was here globals.h:503: error: conflicting types for 'ac_penalty' globals.h:425: error: previous declaration of 'ac_penalty' was here globals.h:510: error: parse error before '}' token globals.h:526: error: parse error before "ulong" globals.h:526: warning: no semicolon at end of struct or union globals.h:541: error: parse error before '}' token globals.h:541: warning: `packed' attribute ignored globals.h:560: error: parse error before "cs_atoi" globals.h:560: warning: data definition has no type or storage class globals.h:570: error: parse error before "b2i" globals.h:570: warning: data definition has no type or storage class globals.h:572: error: parse error before "ulong" globals.h:573: error: parse error before "a2i" globals.h:573: warning: data definition has no type or storage class globals.h:590: error: conflicting types for 'reader' globals.h:527: error: previous declaration of 'reader' was here globals.h:599: error: conflicting types for 'ph' globals.h:354: error: previous declaration of 'ph' was here globals.h:600: error: parse error before '*' token globals.h:600: warning: data definition has no type or storage class globals.h:614: error: parse error before '*' token globals.h:620: error: parse error before '*' token globals.h:623: error: parse error before "ECM_REQUEST" globals.h:624: error: parse error before "ECM_REQUEST" globals.h:626: error: parse error before "chk_provid" globals.h:626: warning: data definition has no type or storage class globals.h:627: error: parse error before '*' token globals.h:628: error: parse error before '*' token globals.h:629: error: parse error before '*' token globals.h:631: error: parse error before '*' token globals.h:631: warning: data definition has no type or storage class globals.h:632: error: parse error before '*' token globals.h:633: error: parse error before '*' token globals.h:635: error: parse error before '*' token globals.h:636: error: parse error before '*' token globals.h:637: error: parse error before '*' token globals.h:638: error: parse error before '*' token globals.h:639: error: parse error before '*' token globals.h:640: error: parse error before '*' token globals.h:651: error: parse error before '*' token globals.h:655: error: parse error before '*' token globals.h:663: error: parse error before "ulong" globals.h:693: error: parse error before '*' token globals.h:698: error: parse error before '*' token globals.h:704: error: parse error before '*' token globals.h:710: error: parse error before '*' token globals.h:716: error: parse error before '*' token mpcs-simples.c:3: error: static declaration of 'aeskey' follows non-static decla ration globals.h:307: error: previous declaration of 'aeskey' was here mpcs-simples.c: In function `aes_set_key': mpcs-simples.c:8: error: invalid use of undefined type `struct s_client' mpcs-simples.c:8: error: dereferencing pointer to incomplete type mpcs-simples.c: In function `aes_encrypt_idx': mpcs-simples.c:22: error: invalid use of undefined type `struct s_client' mpcs-simples.c:22: error: dereferencing pointer to incomplete type mpcs-simples.c: At top level: mpcs-simples.c:84: error: parse error before "cs_atoi" mpcs-simples.c: In function `cs_atoi': mpcs-simples.c:87: error: `ulong' undeclared (first use in this function) mpcs-simples.c:87: error: (Each undeclared identifier is reported only once mpcs-simples.c:87: error: for each function it appears in.) mpcs-simples.c:87: error: parse error before "rc" mpcs-simples.c: At top level: mpcs-simples.c:223: error: parse error before "b2i" mpcs-simples.c:245: error: parse error before "ulong" mpcs-simples.c: In function `i2b': mpcs-simples.c:248: error: `n' undeclared (first use in this function) mpcs-simples.c:251: error: `i' undeclared (first use in this function) mpcs-simples.c: At top level: mpcs-simples.c:268: error: parse error before "a2i" mpcs-simples.c: In function `a2i': mpcs-simples.c:271: error: `ulong' undeclared (first use in this function) mpcs-simples.c:271: error: parse error before "rc" mpcs-simples.c: At top level: globals.h:354: error: storage size of `ph' isn't known make[1]: *** [lib/libcs-i386-pc-linux.a(mpcs-simples.o)] Error 1 make: [i386-pc-linux] Error 2 (ignored) Странно всё както, все шло нормально а потом бац
|
|
|
|
|
May 22 2008, 11:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(west329_ @ May 22 2008, 13:48)  но так буквально все воспринемать не надо Ну извините, я не телепат, чтобы вот тут воспринимать, а вот тут нет. И если вы собираете под Cygwin, то почему Цитата Build for platform i386-pc-linux
|
|
|
|
|
May 22 2008, 13:17
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(andrew_b @ May 22 2008, 14:33)  Ну извините, я не телепат, чтобы вот тут воспринимать, а вот тут нет.
И если вы собираете под Cygwin, то почему Сам немогу понять, вот принудительно прописал Код $ make win ----------------------------------------------------- Build for platform i386-pc-cygwin ----------------------------------------------------- make -C cscrypt i686-pc-cygwin-gcc -O2 -DOS_CYGWIN32 -c md5.c i686-pc-cygwin-ar -rvsl ../lib/libcscrypt-i386-pc-cygwin.a md5.o make[2]: i686-pc-cygwin-ar: Command not found make[2]: *** [../lib/libcscrypt-i386-pc-cygwin.a(md5.o)] Error 127 make[1]: *** [prepare] Error 2 make: [cross-i386-pc-cygwin] Error 2 (ignored) Сразу вылетела
|
|
|
|
|
May 22 2008, 14:37
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(west329_ @ May 22 2008, 10:18)  Но это только в планах, саму программу пока нужно подкорректировать, тестировать нужно в Windows. Для сборки в EXE файл линукс исходников используют популярую Cygwin. Ого... Какого рода эта программа что для её тестирования можно использовать cygwin? Не проще ли установить Linux в какой-нибудь виртуальной машине типа QEMU и тестировать что угодно без извращений в условиях "более родной окружающей среды"?.. В общем, учите матчасть Вот пара документиков, которые могут пригодиться (нравятся они мне): http://free-electrons.com/training/devtoolshttp://free-electrons.com/training/driversи т.д. на http://free-electrons.com/trainingИМХО пользоваться готовой сборкой и добавлять что-то свое не лучший метод, возможно стоит пересобрать Linux под себя и засовывать его в интересующий роутер...
--------------------
|
|
|
|
|
May 22 2008, 18:06
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(west329_ @ May 22 2008, 09:18)  Задача стоит в том, чтоб программа заработала на АРМ контроллере, на котором работает Linux. При этом хочу использовать платформу обычных недорогих роутеров типа ASUS или Dlink? на них как я понял уже стоит линукс, нужно только докинуть исполнямый файл в прошивку.
Но это только в планах, саму программу пока нужно подкорректировать, тестировать нужно в Windows. Для сборки в EXE файл линукс исходников используют популярую Cygwin. 1. Судя по Вашей формулировке Вы совершенно не представляете, что Вы хотите сделать. Потому что: 1.1 АРМ контроллере 1.2 на котором работает Linux 1.3 Cygwin Не понятно, каким образом программа собранная с помощью Cygwin будет работать на ARM контроллере под Linux. Для того, чтоб программа работала на ARM контроллере, на котором Linux, нужно иметь кросс-компилятор. Будет он (кросс-компилятор) запускаться на Linux или из под Cygwin - не имеет значения. Для того чтобы перекомпилить Linux-овую программу под Windows, используя Cygwin, нужно иметь под Cygwin установленные ВСЕ программы, используемые во время компиляции. Очень минимальный набор это binutils, gcc, g++, glibc, make, sh Как правило, для компиляции более или менее сложных программ нужна еще куча инструментального софта, так что установка по умолчанию Cygwin не катит. Достаточно вероятно, что ПОЛНАЯ установка Cygwin, то есть выбираем при установке ВСЕ пакеты, даст возможность компилировать 75% программ. 1.4 При установке Linux, инструментальный софт устанавливается, как правило, по умолчанию, хотя и не во всех дистрибутивах. Потому программа и компилируется в Linux без проблем. 2. Есть программа make. Вообще-то полное название GNU make, потому как всякие CBuilder-ы то-же имеют такую программу в своем составе, но они в данном случае негодятся. Эти программа читает Makefile и выполняет то, что там написано. gcc - это компилятор. Его вызов осуществляется программой make в соответствии с написанными правилами в Makefile. 3. У меня есть некоторый опыт перекомпиляции Linux программ под Cygwin. В простейших случаях все работает без проблем. Но если программа чуть сложнее школьных упражнений по информатике, то возникает такое количество проблем, что лучше сразу отказаться от этой затеи и перейти на Linux. Если автор программы изначально не писал программу в расчете на Cygwin - то это работенка для мазохистов. PS: Использую VirtualBox (virtualbox.org), очень хорошо работает. Если не хотите "чистый" Linux, поставте его в виртуальную машину на VirtualBox. PPS: У Вас же не возникает мысли написать и компилировать программу для Windows используя Linux. А между прочим это гораздо легче, чем Linux программу компилить в Cygwin.
Сообщение отредактировал amw - May 22 2008, 18:11
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
May 23 2008, 06:17
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Вот листин Makefile Цитата SHELL = /bin/sh
VER = $(subst ",,$(filter-out \#define CS_VERSION,$(shell grep CS_VERSION globals.h))) export VER
linux: i386-pc-linux freebsd: i386-pc-freebsd tuxbox: cross-powerpc-tuxbox-linux win: cross-i386-pc-cygwin cygwin: i386-pc-cygwin
std: linux \ cross-i386-pc-cygwin \ cross-powerpc-tuxbox-linux \ cross-i386-pc-freebsd \ cross-arm-nslu2-linux \ cross-mipsel-router-linux-uclibc927 \ cross-mipsel-router-linux-uclibc928 \ cross-mipsel-tuxbox-linux-glibc \ cross-sh4-linux
all: \ cross-sparc-sun-solaris2.7 \ cross-rs6000-ibm-aix4.2 \ cross-mips-sgi-irix6.5
dist: std @cd Distribution && tar cvf "../mpcs$(VER).tar" * @bzip2 -9f "mpcs$(VER).tar"
extra: all @cd Distribution && tar cvf "../mpcs$(VER)-extra.tar" * @bzip2 -9f "mpcs$(VER)-extra.tar"
clean: @-rm -rf mpcs-ostype.h lib Distribution/mpcs-*
tar: clean @tar cvf "mpcs$(VER)-src.tar" Distribution Make* *.c *.h cscrypt csctapi @bzip2 -9f "mpcs$(VER)-src.tar"
nptar: clean @tar cvf "mpcs$(VER)-nonpublic-src.tar" Distribution Make* *.c *.np *.h cscrypt csctapi csgbox @bzip2 -9f "mpcs$(VER)-nonpublic-src.tar"
###################################################################### # # LINUX native # ###################################################################### i386-pc-linux: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_LINUX" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=gcc \ DS_AR=ar \ DS_LD=ld \ DS_RL=ranlib \ DS_ST=strip
###################################################################### # # FreeBSD native # ###################################################################### i386-pc-freebsd: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_FREEBSD -DBSD_COMP -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=gcc \ DS_AR=ar \ DS_LD=ld \ DS_RL=ranlib \ DS_ST=strip
###################################################################### # # FreeBSD 5.4 crosscompiler # ###################################################################### cross-i386-pc-freebsd: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_FREEBSD -DBSD_COMP -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=i386-pc-freebsd5.4-gcc \ DS_AR=i386-pc-freebsd5.4-ar \ DS_LD=i386-pc-freebsd5.4-ld \ DS_RL=i386-pc-freebsd5.4-ranlib \ DS_ST=i386-pc-freebsd5.4-strip
###################################################################### # # Tuxbox crosscompiler # ###################################################################### cross-powerpc-tuxbox-linux: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_LINUX -DTUXBOX -DPPC" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=powerpc-tuxbox-linux-gnu-gcc \ DS_AR=powerpc-tuxbox-linux-gnu-ar \ DS_LD=powerpc-tuxbox-linux-gnu-ld \ DS_RL=powerpc-tuxbox-linux-gnu-ranlib \ DS_ST=powerpc-tuxbox-linux-gnu-strip
###################################################################### # # sh4 crosscompiler # ###################################################################### cross-sh4-linux: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_LINUX" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-gcc \ DS_AR=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ar \ DS_LD=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ld \ DS_RL=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ranlib \ DS_ST=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-strip
###################################################################### # # Cygwin crosscompiler # ###################################################################### cross-i386-pc-cygwin: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_CYGWIN32" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=i686-pc-cygwin-gcc \ DS_AR=i686-pc-cygwin-ar \ DS_LD=i686-pc-cygwin-ld \ DS_RL=i686-pc-cygwin-ranlib \ DS_ST=i686-pc-cygwin-strip
###################################################################### # # Cygwin native # ###################################################################### i386-pc-cygwin: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_CYGWIN32 -I /tmp/include" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=gcc \ DS_AR=ar \ DS_LD=ld \ DS_RL=ranlib \ DS_ST=strip
###################################################################### # # Solaris 7 crosscompiler # ###################################################################### cross-sparc-sun-solaris2.7: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_SOLARIS -DOS_SOLARIS7 -DBSD_COMP -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="-lsocket" \ DS_ARFLAGS="-rvsl" \ DS_CC=sparc-sun-solaris2.7-gcc \ DS_AR=sparc-sun-solaris2.7-ar \ DS_LD=sparc-sun-solaris2.7-ld \ DS_RL=sparc-sun-solaris2.7-ranlib \ DS_ST=sparc-sun-solaris2.7-strip
###################################################################### # # AIX 4.2 crosscompiler # ###################################################################### cross-rs6000-ibm-aix4.2: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthreads" \ DS_OPTS="-O2 -DOS_AIX -DOS_AIX42 -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=rs6000-ibm-aix4.2-gcc \ DS_AR=rs6000-ibm-aix4.2-ar \ DS_LD=rs6000-ibm-aix4.2-ld \ DS_RL=rs6000-ibm-aix4.2-ranlib \ DS_ST=rs6000-ibm-aix4.2-strip
###################################################################### # # IRIX 6.5 crosscompiler # ###################################################################### cross-mips-sgi-irix6.5: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_IRIX -DOS_IRIX65 -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=mips-sgi-irix6.5-gcc \ DS_AR=mips-sgi-irix6.5-ar \ DS_LD=mips-sgi-irix6.5-ld \ DS_RL=mips-sgi-irix6.5-ranlib \ DS_ST=mips-sgi-irix6.5-strip
cross-mipsel-router-linux-uclibc: cross-mipsel-router-linux-uclibc928 ###################################################################### # # Linux MIPS(LE) crosscompiler with ucLibc 0.9.27 # ###################################################################### cross-mipsel-router-linux-uclibc927: @-mipsel-linux-uclibc-setlib 0.9.27 @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_LINUX -DMIPSEL -DUCLIBC -DUSE_GPIO -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=mipsel-linux-uclibc-gcc \ DS_AR=mipsel-linux-uclibc-ar \ DS_LD=mipsel-linux-uclibc-ld \ DS_RL=mipsel-linux-uclibc-ranlib \ DS_ST=mipsel-linux-uclibc-strip
###################################################################### # # Linux MIPS(LE) crosscompiler with ucLibc 0.9.28 # ###################################################################### cross-mipsel-router-linux-uclibc928: @-mipsel-linux-uclibc-setlib 0.9.28 @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_LINUX -DMIPSEL -DUCLIBC -DUSE_GPIO -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=mipsel-linux-uclibc-gcc \ DS_AR=mipsel-linux-uclibc-ar \ DS_LD=mipsel-linux-uclibc-ld \ DS_RL=mipsel-linux-uclibc-ranlib \ DS_ST=mipsel-linux-uclibc-strip
###################################################################### # # Linux MIPS(LE) crosscompiler with glibc (DM7025) # ###################################################################### cross-mipsel-tuxbox-linux-glibc: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_LINUX -DTUXBOX -DMIPSEL -static-libgcc" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=mipsel-linux-glibc-gcc \ DS_AR=mipsel-linux-glibc-ar \ DS_LD=mipsel-linux-glibc-ld \ DS_RL=mipsel-linux-glibc-ranlib \ DS_ST=mipsel-linux-glibc-strip
###################################################################### # # HP/UX 10.20 native # ###################################################################### hppa1.1-hp-hpux10.20: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_HPUX -DOS_HPUX10 -D_XOPEN_SOURCE_EXTENDED" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=gcc \ DS_AR=ar \ DS_LD=ld \ DS_RL=ranlib \ DS_ST=strip
###################################################################### # # OSF5.1 native # ###################################################################### alpha-dec-osf5.1: @-$(MAKE) --no-print-directory \ -f Maketype TYP=$(subst cross-,,$@) \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-O2 -DOS_OSF -DOS_OSF5" \ XDS_CFLAGS="-I/usr/include -c" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_CC=cc \ DS_AR=ar \ DS_LD=ld \ DS_RL=ranlib \ DS_ST=strip
###################################################################### # # ARM crosscompiler (big-endian) # ###################################################################### cross-arm-nslu2-linux: @-$(MAKE) --no-print-directory \ -f Maketype TYP="$(subst cross-,,$@)" \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-DOS_LINUX -O2 -DARM -DALIGNMENT" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_AWK="awk" \ DS_CC="armv5b-softfloat-linux-gcc" \ DS_AR="armv5b-softfloat-linux-ar" \ DS_LD="armv5b-softfloat-linux-ld" \ DS_RL="armv5b-softfloat-linux-ranlib" \ DS_ST="armv5b-softfloat-linux-strip"
###################################################################### # # ARM crosscompiler (big-endian) # ###################################################################### cross-armBE-unkown-linux: -$(MAKE) --no-print-directory \ -f Maketype TYP="$(subst cross-,,$@)" \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-DOS_LINUX -O2 -DARM -DALIGNMENT" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_AWK="awk" \ DS_CC="arm-linux-gcc -mbig-endian" \ DS_AR="arm-linux-ar" \ DS_LD="arm-linux-ld -EB" \ DS_RL="arm-linux-ranlib" \ DS_ST="arm-linux-strip"
###################################################################### # # ARM crosscompiler (little-endian) # ###################################################################### cross-armLE-unkown-linux: -$(MAKE) --no-print-directory \ -f Maketype TYP="$(subst cross-,,$@)" \ OS_LIBS="" \ OS_CULI="-lncurses" \ OS_PTLI="-lpthread" \ DS_OPTS="-DOS_LINUX -O2 -DARM -DALIGNMENT" \ DS_CFLAGS="-c" \ DS_LDFLAGS="" \ DS_ARFLAGS="-rvsl" \ DS_AWK="awk" \ DS_CC="arm-linux-gcc -mlittle-endian" \ DS_AR="arm-linux-ar" \ DS_LD="arm-linux-ld -EL" \ DS_RL="arm-linux-ranlib" \ DS_ST="arm-linux-strip" Я не выдумываю чтото своё, эта программа прекрасно существует с расширением exe, собранная под CYGwin-ом и прикрасно работает в windows, как и на родном линукс, проверял лично в обеих вариантах а исходники доступны токо линуксовые. Что-то мне подсказывает [code]i686-pc-cygwin-ar -rvsl ../lib/libcscrypt-i386-pc-cygwin.a md5.o[code] что у меня cygvin для i686 а нужно для i386
Сообщение отредактировал west329_ - May 23 2008, 06:18
|
|
|
|
|
May 23 2008, 10:12
|

Местный
  
Группа: Свой
Сообщений: 304
Регистрация: 5-07-04
Из: г. Москва
Пользователь №: 259

|
Цитата(MrYuran @ May 22 2008, 17:36)  не может найти обработчик ассемблера. Пошукайте. И линкер заодно посмотрите, чтоб 2 раза не бегать Вообще-то ar - это архиватор, чем собирают, разбирают и лезут в библиотеки.
--------------------
Водку пьянствовать и безобразия нарушать!!!
|
|
|
|
|
May 23 2008, 17:38
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(west329_ @ May 23 2008, 09:17)  Вот листин Makefile ... Что-то мне подсказывает Код i686-pc-cygwin-ar -rvsl ../lib/libcscrypt-i386-pc-cygwin.a md5.o что у меня cygvin для i686 а нужно для i386 Пройдитесь по каталогам cygwin и найдите что у Вас i386 или i686. Попробуйте заменить в Makefile секции Код ###################################################################### # # Cygwin native # ###################################################################### i386-pc-cygwin: на соответствующий i686 если у Вас действительно i686-*-gcc. Собственно для того, чтоб запускать эту программу под Cygwin Вам нужна именно Cygwin native сборка. Но не думаю, что именно в этом Ваша проблема. Скорее всего Вы не установили всего необходимого для этой программы либо оно не сконфигурировано (сконфигурировано неправильно). Цитата Код ..... gcc -O2 -DOS_LINUX -c -Icsctapi mpcs-simples.c In file included from mpcs-simples.c:1: globals.h:190: error: parse error before "ulong" ..... Вероятнее всего нет или не инклудится <sys/types.h>
Сообщение отредактировал amw - May 23 2008, 17:44
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|