Автор | Сообщение |
|
| |
Пост N: 1
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 14:33. Заголовок: Как скомпилировать клипперовскую программу?
Люди добрые, помогите пжлста! Есть программа написанная на клиппере предположи 1.prg. Она использует данные находящиеся в 1.obj и 2.obj. Какие команды мне необходимо использовать, чтобы правильно ее скомпилировать при помощи MiniGUI. Что написать в ВАТ файле? уже совсем запутался я с этим компилятором. В клиппере использовался BAT-файл с такими строчками: c:\CL\clipper %1 c:\CL\rtlink file %1 library c:\CL\clipper,c:\CL\extend,c:\CL\terminal,c:\CL\dbfntx,c:\cl\1.obj,c:\cl\2.obj,c:\cl\ct.lib Заранее спасибо!
|
|
|
Ответов - 30
, стр:
1
2
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 200
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 14:45. Заголовок: А в чем проблема? EX..
А в чем проблема? EXE-шник не получается? Как Вы запускаете bat файл?
|
|
|
|
| |
Пост N: 2
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 15:00. Заголовок: Дело в том, что я ре..
Дело в том, что я решил попробывать скомпилировать ее из-под MiniGUI. Пишу в BAT-файле строчку (ее я взял из примера): call C:\MiniGUI\BATCH\compile.bat 1 %1 %2 %3 %4 %5 %6 %7 %8 %9 после запуска компилятор мне сообщает, что не может найти ppi_wag.prg. Данный файл находится в 1.obj. Вот я и не могу понять как мне "объяснить" компилятору откуда его нужно брать? Какой командой это делается?
|
|
|
|
| постоянный участник
|
Пост N: 201
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 15:05. Заголовок: А почему компилятор ..
А почему компилятор ищет ppi_wag.prg? Вы явно указываете этот файл компилятору или есть ссылка в prg-коде?
|
|
|
|
| |
Пост N: 3
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 15:08. Заголовок: есть ссылка в prg-ко..
есть ссылка в prg-коде
|
|
|
|
| постоянный участник
|
Пост N: 202
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 15:12. Заголовок: vibos пишет: есть с..
vibos пишет: А самого файла нет, так? Вы говорите, что все функции из ppi_wag.prg есть в 1.obj, так? Тогда ссылку на ppi_wag.prg в программе закоментируйте, а 1.obj просто прилинкуйте к проекту. Compile.bat имеет опцию /B для таких целей.
|
|
|
|
| |
Пост N: 4
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 15:27. Заголовок: Если я правильно пон..
Если я правильно понял, то строчка должна выглядеть так?: call C:\MiniGUI\BATCH\compile.bat 1 /b 1 %1 %2 %3 %4 %5 %6 %7 %8 %9
|
|
|
|
| постоянный участник
|
Пост N: 204
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 15:30. Заголовок: У Вас получится, что..
У Вас получится, что 1.prg скомпилируется в 1.obj, затерев старый 1.obj с нужными функциями. Разберитесь, какие файлы должны участвовать в проекте.
|
|
|
|
| |
Пост N: 5
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:06. Заголовок: Ладно. Переименовал ..
Ладно. Переименовал файлы. Пишу свои подробные действия. Файл программы называется SRAP2.PRG. Файл в котором находятся множество подпрограмм (в том числе и ppi_wag) называется BIBM.OBJ. Исполняемый файл COMPILE_01.BAT, его содержимое: call C:\MiniGUI\BATCH\compile.bat SRAP2 /b BIBM %1 %2 %3 %4 %5 %6 %7 %8 %9 При его (исполняемого файла) запуске выдается ошибка: SRAP2.PRG(1) Error E0001 Statement not allowed outside of procedure or function Cannot open ppi_wag.prg, assumed external 1 error No code generated. Compile error. В тексет SRAP2.PRG есть строчка которая использует подпрограмму ppi_wag (из BIBM.obj): ... do ppi_wag with kodd,5,sk ... Судя по данной ошибке мой BIBM.obj никак не воспринялся компилятором. Может подскажете, что я делаю не так?
|
|
|
|
| постоянный участник
|
Пост N: 768
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.11.09 16:10. Заголовок: Если BIBM.OBJ есть 1..
Если BIBM.OBJ есть 16 битный обьектный модуль созданный Clipper, то прилинковать ее к 32 разрядной Harbour программе у вас не получится.
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:13. Заголовок: спасибо за ответы. А..
спасибо за ответы. А какие тогда есть варианты решения?
|
|
|
|
| |
Пост N: 7
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:16. Заголовок: впринципе можно найт..
впринципе можно найти BIBM.PRG. А как из него сделать 32-разрадный модуль? Извините за элементарные вопросы, но только начинаю осваивать этот продукт.
|
|
|
|
|
| постоянный участник
|
Пост N: 207
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 16:18. Заголовок: Укажите его в параме..
Укажите его в параметрах compile.bat вместе с SRAP2.
|
|
|
|
| |
Пост N: 8
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:23. Заголовок: Должна быть такая ст..
Должна быть такая строчка?: call C:\MiniGUI\BATCH\compile.bat SRAP2 BIBM %1 %2 %3 %4 %5 %6 %7 %8 %9 или нужно какие-то ключи добавить?
|
|
|
|
| постоянный участник
|
Пост N: 208
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 16:29. Заголовок: Поправлюсь: все-таки..
Поправлюсь: все-таки правильнее, наверное, в конец файла SRAP2.prg добавить строчку: #include "BIMB.prg" и запускать compile.bat SRAP Должно хватить... :)
|
|
|
|
| |
Пост N: 9
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:35. Заголовок: спасибо. вроде срабо..
спасибо. вроде сработало. но все же интересно как мне сделать библиотеку из PRG файла.
|
|
|
|
| постоянный участник
|
Пост N: 209
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 16:39. Заголовок: vibos пишет: как мн..
vibos пишет: цитата: | как мне сделать библиотеку из PRG файла. |
| Хотите LIB что ли?
|
|
|
|
| |
Пост N: 10
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:39. Заголовок: но exe файл все-равн..
но exe файл все-равно не создается. выдается ошибка: SRAP2.PRG(1) Error E0001 Statement not allowed outside of procedure or function
|
|
|
|
| Администратор
|
Пост N: 1248
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.09 16:40. Заголовок: vibos пишет: как мн..
vibos пишет: цитата: | как мне сделать библиотеку из PRG файла |
| не просто, а очень просто вот батник: @if not exist %1.prg exit set HB_INSTALL=\xharbour %HB_INSTALL%\bin\harbour %1 /B /N /M /W /I%HB_INSTALL%\include\ >>_2 @if errorlevel 1 exit d:\bcc55\bin\bcc32 -M -c -O2 -Id:\bcc55\include;%HB_INSTALL%\include %1.c @if errorlevel 1 exit d:\bcc55\bin\tlib mylib /C +-%1 @del %1.c @del %1.obj
|
|
|
|
| |
Пост N: 11
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:40. Заголовок: PSP пишет: Хотите L..
|
|
|
|
| Администратор
|
Пост N: 1249
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.09 16:44. Заголовок: vibos пишет: но exe..
vibos пишет: цитата: | но exe файл все-равно не создается. выдается ошибка: SRAP2.PRG(1) Error E0001 Statement not allowed outside of procedure or function |
| надо убрать опцию /n для компилятора harbour
|
|
|
|
| постоянный участник
|
Пост N: 210
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 16:44. Заголовок: vibos пишет: но exe..
vibos пишет: цитата: | но exe файл все-равно не создается. выдается ошибка: SRAP2.PRG(1) Error E0001 Statement not allowed outside of procedure or function |
| Что в строке 1 файла SRAP2.prg? Do... ? Любая Clipper (Harbour) программа должна начинаться с процедуры (функции) MAIN. А уж внутри - что душе угодно? P.S. Или как Паша написал... :)
|
|
|
|
|
| |
Пост N: 12
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:45. Заголовок: Насчет несоздаваемог..
Насчет несоздаваемого ехе-файла. я так понимаю, что проблема заключается в том, что у меня в клипере используются простоые операторы, а харбор является объектовым компилятором. Как мне скомпилировать обычное досовское окошко из Харбора? возможно ли это?
|
|
|
|
| |
Пост N: 13
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:48. Заголовок: Pasha пишет: надо у..
Pasha пишет: цитата: | надо убрать опцию /n для компилятора harbour |
| это в каком-то кофиг-файле?
|
|
|
|
| |
Пост N: 14
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:49. Заголовок: PSP пишет: Что в ст..
PSP пишет: цитата: | Что в строке 1 файла SRAP2.prg? Do... ? Любая Clipper (Harbour) программа должна начинаться с процедуры (функции) MAIN. А уж внутри - что душе угодно? |
| Пробовал добавить не получается. в первой строке: @0,0 clear
|
|
|
|
| Администратор
|
Пост N: 1250
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.09 16:53. Заголовок: vibos пишет: это в ..
vibos пишет: цитата: | это в каком-то кофиг-файле? |
| В батнике, которым вы пользуетесь. Если это compile.bat из minigui - то в нем. Найдите вызов harbour.exe, и уберите этот флажок В харброре все, как в клиппере, только компиляция выполняется в 2 этапа - еще вызывается компилятор bcc цитата: | Любая Clipper (Harbour) программа должна начинаться с процедуры (функции) MAIN |
| Не совсем. S'87 позволял создавать prg без оператора func/proc, создавая их неявно. Clipper 5.x и Harbour тоже понимает такой синтаксис. За это отвечает как раз флажок /n
|
|
|
|
| постоянный участник
|
Пост N: 211
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 16:55. Заголовок: Как-то так... :)..
Как-то так... :)
|
|
|
|
| |
Пост N: 15
Зарегистрирован: 30.11.09
|
|
Отправлено: 30.11.09 16:56. Заголовок: call C:\MiniGUI&..
call C:\MiniGUI\BATCH\compile.bat SRAP2 /n %1 %2 %3 %4 %5 %6 %7 %8 %9 я вас правильно понял?
|
|
|
|
| постоянный участник
|
Пост N: 212
Зарегистрирован: 27.01.07
|
|
Отправлено: 30.11.09 17:02. Заголовок: vibos пишет: call C..
vibos пишет: цитата: | call C:\MiniGUI\BATCH\compile.bat SRAP2 /n %1 %2 %3 %4 %5 %6 %7 %8 %9 я вас правильно понял? |
| Нет. Нужно отредактировать файл Compile.bat. Убрать флаг /n у всех вызовов компилятора harbour. Вариант 2: оформить стартовую процедуру, чтобы ни один из операторов или функций не находился вне ее.
|
|
|
|
| Администратор
|
Пост N: 1251
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.09 17:06. Заголовок: PSP пишет: Вариант ..
PSP пишет: цитата: | Вариант 2: оформить стартовую процедуру, чтобы ни один из операторов или функций не находился вне ее. |
| Лучше, конечно, так. В начале модуля поставить: proc <modulename> и в конце (или перед первой функцией) - return
|
|
|
|
| постоянный участник
|
Пост N: 769
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.11.09 17:32. Заголовок: vibos пишет: но все..
vibos пишет: цитата: | но все же интересно как мне сделать библиотеку из PRG файла. |
| Если вы используете последнюю версию MiniGUI, то в папке Harbour\bin находится утилита hbmk2, что-то типа rmake для Harbour. Рекомендую освоить. цитата: | Examples to build a Harbour static library: - To build library 'mylib' from sources: 'hbmk2 mylibsrc.prg -omylib -hblib' - To build library 'mylib' from sources using incremental mode: 'hbmk2 mylibsrc.prg -omylib -hblib -inc' |
|
|
|
|
Ответов - 30
, стр:
1
2
All
[только новые]
|
|