сбой pdi

Страницы: 1 2 След.
RSS
сбой pdi
программирую на языке visuаl c 6. Не открывает библиотеку pdi.lib. Говорит что не найден такой- то об'ектный файл
Доброго всем времени суток. Передо мной так же поставлена задача программирования на PDI для Edgecam. Застопорился даже не написав HellowWorld :) Может кто-нибудь объяснить назначение утилиты pdimake.exe. Из документации я понял, что она должна использоваться для компиляции и линковки исходников для PDI-программ. Тогда не совсем понятно, зачем использовать Microsoft C++ студии (шестерку или более новый) для написания программ. Неужели только для того, чтобы иметь "продвинутый" редактор кода???
Теперь о проблеме с pdimake. exe. Когда я пытаюсь скопилировать ей файл browse.c (или программу из раздела помощи "Minimum Requirements of PDI Programs") получаю ошибку

C:\Program Files\Edgecam\Cam\pdimake>pdimake browse.c
Planit Software Limited PDI Applications Maintenance Utility  Ver 2010.10.0
Copyright Planit Software Limited


Compiler incorrectly installed. INCLUDE not defined!
Compiler incorrectly installed. LIB not defined!


C:\Program Files\Edgecam\Cam\pdimake>
файл исходник browse.c, компилятор, линкер студии MS VS С++ 2008, заголовочные файлы студии и PDI я поместил в один каталог для удобства (опять же, руководствуясь документацией по PDI). Так же пробовал помещать пути к этим файлам в переменную окружения PATH, рузультат был таким же.
Кто сталкивался с такой проблемой? Как вы ее решали?
PS. Очень надеюсь, что я не единственный счастливчик, которому предстоит ковыряться с PDI :) Коллеги, давайте объединяться и делиться опытом ;)
Изменено: Андрей Притченко - 18.02.2010 09:52:36
там еще приписка: для того чтобы узнать подробности позвонить по какому-то телефону или зарегистрировать pdi
Цитата
программирую на языке visuаl c 6.
Цитата
Коллеги, давайте объединяться и делиться опытом
Написано тысячи строк на Visual C++ 6.0. софта технологического назначения обработки для СЧПУ фрезерно-севрлильно-расточной группы.
Прежде всего конвертация DXF в NC код:
1) стыковка примитивов в контур
2) расфасовка контуров по видам
3) Распознавание КТЭ в контурах
4) Определение типов, параметров и количества инструмента, для обработки каждого контура
5) Оптимизация выбранного инструмента
6) Определение последовательности обработки контуров в виде
7) Оптимизация обработки
8) Генерация технологии обработки для СЧПУ
9) Генерация УП
10) Прорисовка обработки
Все на автомате, моментально. После нажатия одной кнопки.
Требует доводки.
Под Edgecam не писал.
Изменено: Виктор Турта - 25.02.2010 10:25:21
Инвестирование в СПИ: http://newstopeople.ru/?p=4005#more-4005
(с) Турта В. на все публикации
Цитата
vad vad пишет:
Говорит что не найден такой- то об'ектный файл

и не найдет :))))
объектный файл с расширением *.o я, например, получил, но вот получить *.exe так и не получилось.

Были предприняты попытки получить exe-шник непосредственно в студиях (6, 2005, 2008)
Максимум удалось пройти компиляцию, но вот линкер побороть ни в одной из студий не удалось... студии выдают ошибки при том разные... :я в ступоре:
Поэтому эту затею я бросил и перешел непосредственно к pdimake.
При работе pdimake, только 6-ку удалось с ним подружить, 2005 и 2008, даже при указании в PATH всех необходимых путей до компилятора и линкера, только 6-ка смогла создать объектный файл, но вот с линкером ничего пока не удается сделать... (не хотят дружить  :) )

P.S. Есть предположение, что конфликт с библиотекой pdi.lib (походу она собрана в 2005 студии, и 6-ка ее не понимает)... короче изыскания продолжаются...
Мир не без добрых людей!...
Продолжение:
удалось таки получить объектный файл используя 2005-ю студию и pdimake, но линкер тоже отказался собрать exe-шник :(

проблема такая же как и при использовании 6-ки - не может найти библиотеку с "_pdi_..."

непосредственно в студии это решалось обычным подключением pdi.lib в свойствах проекта, но как это сделать используя pdimake, пока не знаю....

Завтра попробую еще одну идейку, если не получиться, то буду уповать на чудо и помощь других....

P.S. народ, не оставайтесь безучастным.... :)
P.S. надеюсь это не сильно похоже на флуд :)))))
Мир не без добрых людей!...
Очередное продолжение :):

Вот, чего удалось добиться:

СООБЩЕНИЕ ВЫДАВАЕМОЕ ПРИ ИСПОЛЬЗОВАНИИ PDIMAKE+MVS6sp6:
-------------------------------------------------------------------------------------------
Planit Software Limited PDI Applications Maintenance Utility Ver 2010.10.0
Copyrigght Planit Software Limited

Compiling !.o from !.c
!.c
Building .. .\cam\pdi\cat-run\!.exe
LINK : fatal error LNK1196: invalid or corrupt import object: unknown version
Error building executable .. .\cam\pdi\cat-run\!.exe (link.exe)
-------------------------------------------------------------------------------------------
В связи с несовместимостью pdi.lib с 6-кой, данный путь не буду рассматривать...
Это направление имеет смысл продолжать, если версия EdgeCAM старая (наверное (ИМХО) не старше 12.5)
Мир не без добрых людей!...
-------------------------------------------------------------------------------------------
СООБЩЕНИЕ ВЫДАВАЕМОЕ ПРИ ИСПОЛЬЗОВАНИИ PDIMAKE+MVS2005sp1:
-------------------------------------------------------------------------------------------
Planit Software Limited PDI Applications Maintenance Utility Ver 2010.10.0
Copyrigght Planit Software Limited

Compiling !.o from !.c
!.c
Building error C1007: unrecognized flag '-typedil' in 'p2'
LINK : fatal error LNK1257: code generation failed
Error building executable .. .\cam\pdi\cat-run\!.exe (link.exe)
-------------------------------------------------------------------------------------------

P.S. Такие же сообщения об ошибках выдают и сами студии, если компилировать и собирать exe-шники непосредственно в студиях. Уже прогресс :)
Ах да (упс), забыл сказать, что все делаться для EdgeCAM 2010... :)
Мир не без добрых людей!...
Кратенькое дополнение:

для PDIMAKE+MVS2008, те же яйца только в профиль.... :) такие же проблемы, что и у PDIMAKE+MVS2005, только Building error C1900

Продолжение следует... :)
Мир не без добрых людей!...
Вот пример файла для запуска pdi, при установленной MsVS6:
-----------------------------------------------------------------------------------
echo on
set include=C:\Program Files\Microsoft Visual Studio\VC98\include;C:\Program Files\Microsoft Visual Studio\VC98\mfc\include;C:\Program Files\Microsoft Visual Studio\VC98\atl\include;d:\Program Files\Edgecam 2010.R1\Cam\PDI\Include
set lib=C:\Program Files\Microsoft Visual Studio\VC98\lib;C:\Program Files\Microsoft Visual Studio\VC98\mfc\lib;d:\Program Files\Edgecam 2010.R1\Cam\PDI\Lib
path=C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\VC98\bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;d:\Program Files\Edgecam 2010.R1\Cam
pdimake -f !.pmf
pause
-----------------------------------------------------------------------------------
где C:\Program Files\Microsoft Visual Studio - путь к папке, где устновлена MsVS6,
а  d:\Program Files\Edgecam 2010.R1 - путь к папке, где устновлен EdgeCAM (в данном пример 2010.R1)
Мир не без добрых людей!...
Вот пример файла для запуска pdi, при установленной MsVS2005:
-----------------------------------------------------------------------------------
echo on
set include=c:\Program Files\Microsoft Visual Studio 8\VC\include;c:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include;c:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include;c:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\common\include;d:\Program Files\Edgecam 2010.R1\Cam\PDI\Include
set lib=c:\Program Files\Microsoft Visual Studio 8\VC\lib;c:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib;c:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\i386;c:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;c:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\common\lib;d:\Program Files\Edgecam 2010.R1\Cam\PDI\Lib
path=c:\Program Files\Microsoft Visual Studio 8\VC\bin;c:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;c:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\common\bin;c:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin;c:\Program Files\Microsoft Visual Studio 8\Common7\Tools;c:\Program Files\Microsoft Visual Studio 8\Common7\ide;c:\Program Files\Microsoft Visual Studio 8\VC\ce\bin;d:\Program Files\Edgecam 2010.R1\Cam
pdimake -f !.pmf
pause
-----------------------------------------------------------------------------------
где C:\Program Files\Microsoft Visual Studio 8 - путь к папке, где устновлена MsVS2005,
а  d:\Program Files\Edgecam 2010.R1 - путь к папке, где устновлен EdgeCAM (в данном пример 2010.R1)
Изменено: Алексей Шпинев - 22.03.2010 11:50:21
Мир не без добрых людей!...
Файл !.pmf:
-----------------------------------------------------------------------------------
-o ! -f !.c
-e ! -o !
-----------------------------------------------------------------------------------
где !.с - файл, содержащий код.
"-o ! -f !.c" - создаем объектный файл с именем !.o (компилятор)
"-e ! -o !" - создаем exe (линкер)
Мир не без добрых людей!...
И одно важное условие все файлы: !.с, !.pmf и запускаемый файл должны лежать в папке CAM EdgeCAM и ни как иначе... в противном случае pdimake не найдет pdi.lib
Мир не без добрых людей!...
все ключи для запуска компилятора и линкера прописаны в файле pdimake.tof:
----------------------------------------------------------------------------
# Default Tool Option File for PDIMAKE. This file is loaded automatically
# when PDIMAKE is executed.
WINNT
COMP=cl.exe
COMP_OPTS=/W4 /MD /c /O2 /nologo /DWIN32 /D_WINDOWS /DNDEBUG
LINK=link.exe
LINK_OPTS=/SUBSYSTEM:Windows user32.lib kernel32.lib gdi32.lib /NOLOGO /NOD:LIBC.LIB /NOD:LIBCMT.LIB
LIB=lib.exe
LIB_OPTS=/nologo
WINNT

DEBUG_WINNT
COMP=cl.exe
COMP_OPTS=/Zi /W4 /MDd /c /Od /nologo /DWIN32 /D_WINDOWS /D_DEBUG
LINK=link.exe
LINK_OPTS=/SUBSYSTEM:Windows user32.lib kernel32.lib gdi32.lib /NOLOGO /DEBUG /debugtype:cv /NOD:LIBC.LIB /NOD:LIBCMT.LIB
LIB=lib.exe
LIB_OPTS=/nologo
DEBUG_WINNT
Мир не без добрых людей!...
Алексей,

Получил ваше письмо. Не могли бы вы написать мне напрямую на адресс agf-ko@inbox.ru, я вам отвечу подробно на все вопросы.

Всего доброго,
       Андрей.
И сразу вопрос: кто-нибудь пытался повторить пройденный мной путь? если да, то поделитесь результатами...
Мир не без добрых людей!...
попозже
Наконец-то это свершилось!!!!!!!!!!!!!!!  :idea:
Мир не без добрых людей!...
Рассмотрим весь процесс :):

Примечание: все проводилось с использованием следующих программных продуктов: Edgecam 2010.R1, Microsoft Visual Studio 2008 SP1 (SP1 обязателен!!!!)

1. в папке .. .\Cam создаем следующие файлы:
*.mak - (пример файла "!.mak")
*.cmd - (пример файла "2008.cmd")
в эту же папку сбрасывается файл *.c (в качестве примера был выбран файл browse.c (я его обозвал !.c :)) из папки .. .\Cam\PDI\Src)
2. запускаем *.cmd и смотрим за процессом компиляции...
3. скомпилированный *.exe будет помещен в папку .. .\Cam\PDI\Menu-Run
если хотите запускать этот файл в Edgecam (Custom\Run Executable), то перенесите *.exe и *.exe.manifest в папку .. .\Cam\PDI\Cat-Run

P.S.: названия файлов могут быть разными, главное сохранить грамматику :)

Всем удачного программирования :)
Мир не без добрых людей!...
Маленькое примечание:
Пользователь любой версии Edgecam может определить версию MsVS самостоятельно...
Для этого нужно открыть папку .. .\Cam\PDI\Menu-Run\или .. .\Cam\PDI\Cat-Run\ и любым просмоторщиком открыть файл *.exe.manifest? там содержится информация о версии MsVS, в частности для Edgecam 2010.R1 можно увидеть следующую строчку:

<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" />

Как видно студия - Microsoft.VC90.CRT версия 9.0.21022.8, а это MsVS2008...
Мир не без добрых людей!...
Страницы: 1 2 След.
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)