Проблема сборки PAPyRUS под OpenBSD 6.2
-
AkhmedSataja:32. Это код из проекта из 97-го года.
https://motif.ics.com/book/export/html/31
http://www.sourcefiles.org/Wordprocessors/papyrus-1.1.1.src.tar.gz.shtml
Не знаю как у Вас, но у меня по этим ссылкам ничего кроме списка программ и главной страницы Sourcefiles ничего не открывается.
Не проще ли Abiword поставить? Если он есть под OpenBSD. -
Abiword у меня жутко лагает, да и потом, неплохо было бы иметь инструменты на Motif, запущенные в DE, что так же основана на оном.
Насчет ссылок - извиняйте. http://www.ibiblio.org/pub/Linux/apps/wp/papyrus/!INDEX.html вот - рабочая. -
Хочу написать что tar'в скачанные с этой ссылки выбивают с ошибкой при распаковке(или же я рукожоп).
Ещё раз посмтрел лог, в /usr/lib/crt0.o функция _start ссылается на то чего нет в main, то есть надо смотреть код там и очень внимательно(конечно если знаете этот язык программирования). -
>конечно если знаете этот язык программирования
Самые-самые основы (Hello World в BORLAND C 2 под DOS писал).
Спасибо большое. То есть, этот код из коробки уже с ошибкой идет? Или это я своими "исправлениями" его испоганил? -
Кстати, там француз понатыкал везде extern "C"{}
Это для совместной работы сишного и c++ного кода?
http://www.ibiblio.org/pub/Linux/apps/wp/papyrus/papyrus-1.1.1.src.tar.gzolegus:Хочу написать что tar'в скачанные с этой ссылки выбивают с ошибкой при распаковке(или же я рукожоп).
Ещё раз посмтрел лог, в /usr/lib/crt0.o функция _start ссылается на то чего нет в main, то есть надо смотреть код там и очень внимательно(конечно если знаете этот язык программирования).
Не знаю, может как-то скачался не так? Ввожу команду tar xzvf papyrus-1.1.1.src\(1\).tar.gz и он распаковывает.
md5 сумма сего архива: 09f15aa89e795f5bad59096a2c95127f -
Попробую без GUI собрать. Он вроде писал, что такое возможно.
-
Если позволите, дуратский вопрос - а что если без Makefile'а скомпилировать gcc все сишные файлы и библиотеки, а g++ - все фалы плюсов? Хотя да, это не исправит ошибки в коде.
-
Да.AkhmedSataja:Кстати, там француз понатыкал везде extern "C"{}
Это для совместной работы сишного и c++ного кода?
Знаете, ведь у C'ишных были версии языков (C89,C90,C99 и т.д.), может код написанный в версии C90, не может выполнится в C11,17? Несовместимость версий просто встречал в Python, где библиотеки от 3.x не работают в 2.x и наоборот. Вдруг тут такое же.
Но все равно надо смотреть код в функции _start и main. -
Мне не хватает знаний, чтобы понять что тут не так - по большому счету, ошибка ведь может быть и за пределами функции main? А там, если смотреть вместе с докам и pixmap'ами - 180 файлов.
Listing of main.cc:/* * main.cc -- * * This file contains the main functions of the application. * * Copyright (C) 1996-1997 Carlos Nunes - loscar@mime.univ-paris8.fr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * */ extern "C" { #include <stdio.h> #include "globals.h" #include "../tcl/mytcl.h" #ifdef HAVE_GUI #include "../gui/mainWin.h" #endif extern int My_Tcl_Main(int, char **); } #include "papyrus.h" #include "../misc/env.h" #ifdef HAVE_GUI XrmOptionDescRec Desc[] = { {"-visual", "*visual", XrmoptionSepArg, NULL}, {"-depth", "*depth", XrmoptionSepArg, NULL} }; static XtAppContext app_context; static XtWorkProcId workProcId; Widget toplevel; int ac; char **av; Dimension appWidth, appHeight; extern "C" { extern void Scale_Increment(); extern void Intro_Message(char *); extern void Set_Actions(XtAppContext); extern void CenterDialog_CB(Widget, XtPointer, XtPointer); extern void GUI_CreateWelcome_Dialog(); } #else #include "events.h" #endif BOOL interactive_flag; Papyrus *papyrus; /* *---------------------------------------------------------------------- * * Init_Papyrus -- * * This method is invoked to create some features of the * application when PAPyRUS starts (tcl, gui, kernel). * * Results: * None. * * Side effects: * None. * *---------------------------------------------------------------------- */ #ifdef HAVE_GUI void Init_Papyrus(void) { /* * The following lines prevent a bug from my X version * so Init_Papyrus will be called only 1 time. */ static int i=0; if( i != 0 ) return; else i = 1; XtRemoveWorkProc(workProcId); Intro_Message("Creating main GUI"); GUI_Create(); Intro_Message("Setting actions"); Set_Actions(app_context); Intro_Message("Initializing kernel"); papyrus = new Papyrus( XtDisplay(toplevel) ); Scale_Increment(); /* * For the moment, XDisplay isn't know, and zoom is * initialised by XDisplay constructor. */ zoom = 1; Intro_Message("Starting Tcl interpreter"); My_Tcl_Main(ac, av); Tcl_LinkVar(theInterp, "interactive_flag", (char *)&interactive_flag, TCL_LINK_BOOLEAN); Scale_Increment(); Intro_Message("Papyrus ready"); Scale_Increment(); XtRealizeWidget(toplevel); Scale_Increment(); XtDestroyWidget(XtNameToWidget(toplevel, "*welcome")); } #endif /* *---------------------------------------------------------------------- * * main -- * * This method is the main function of the application. * * Results: * Standart C main function result. * * Side effects: * None. * *---------------------------------------------------------------------- */ extern "C"{ int main(int argc, char *argv[]) { interactive_flag = (BOOL)TRUE; Get_Environment(); #ifdef HAVE_GUI Display *d; toplevel = XtVaAppInitialize(&app_context, "Papyrus", Desc, XtNumber(Desc), &argc, argv, NULL, NULL, NULL); d = XtDisplay(toplevel); appWidth = DisplayWidth(d, 0); appHeight = DisplayHeight(d, 0); GUI_CreateWelcome_Dialog(); ac = argc; av = argv; workProcId = XtAppAddWorkProc(app_context, (XtWorkProc)Init_Papyrus, NULL); XtAppMainLoop(app_context); #else My_Display_Init(); if( My_Tcl_Main(argc, argv) != TCL_OK ) exit(1); Tcl_LinkVar(theInterp, "interactive_flag", (char *)&interactive_flag, TCL_LINK_BOOLEAN); Tcl_Eval(theInterp, "NewDocument"); My_AppMainLoop(); #endif return 0; } }
-
Listing of FILES:
7 Makefile 7 Makefile.std 7 bin/Papyrus.ad.common 12 bin/Papyrus.ad.eng 15 bin/Papyrus.ad.fr 35 bin 3 doc/README.english 4 doc/README.french 19 doc/Copyright 1 doc/WARNING 2 doc/Changes 30 doc 2 gui/globals.h 43 gui/callbacks.c 2 gui/init.h 6 gui/init.c 9 gui/actions.c 2 gui/modify_text.h 2 gui/actions.h 20 gui/dialogs.c 1 gui/menus.h 2 gui/dialogs.h 11 gui/mainWin.c 10 gui/modify_text.c 2 gui/mainWin.h 7 gui/menus.c 35 gui/widgets.c 4 gui/callbacks.h 3 gui/widgets.h 162 gui 3 kernel/cursor.h 19 kernel/ps_output.cc 3 kernel/container.h 15 kernel/util.cc 11 kernel/display.cc 2 kernel/image.h 5 kernel/main.cc 3 kernel/page.h 3 kernel/line.h 5 kernel/display.h 2 kernel/isfuncs.h 2 kernel/globals.h 2 kernel/output.h 2 kernel/papyrus.h 2 kernel/util.h 3 kernel/shape.h 4 kernel/ascii_output.cc 7 kernel/attributes.cc 2 kernel/events.h 6 kernel/isfuncs.cc 2 kernel/wordSegment.h 6 kernel/document.cc 18 kernel/line.cc 6 kernel/word.cc 7 kernel/paragraph.cc 5 kernel/events.cc 9 kernel/image.cc 17 kernel/page.cc 3 kernel/cursor.cc 2 kernel/document.h 2 kernel/paragraph.h 16 kernel/wordSegment.cc 3 kernel/attributes.h 2 kernel/thePosition.h 7 kernel/frame.cc 2 kernel/marker.h 4 kernel/frame.h 4 kernel/thePosition.cc 2 kernel/word.h 11 kernel/container.cc 3 kernel/FontManager/fontFamily.h 5 kernel/FontManager/fontFamily.cc 6 kernel/FontManager/fontManager.cc 2 kernel/FontManager/fontManager.h 17 kernel/FontManager 5 kernel/StyleManager/styleManager.cc 2 kernel/StyleManager/styleManager.h 5 kernel/StyleManager/styleItem.cc 3 kernel/StyleManager/styleItem.h 16 kernel/StyleManager 2 kernel/margin.h 9 kernel/papyrus_output.cc 275 kernel 125 lib/fonts/ps/Courier.pfa 126 lib/fonts/ps 16 lib/fonts/afm/Times-Roman.afm 14 lib/fonts/afm/Courier.afm 31 lib/fonts/afm 158 lib/fonts 3 lib/ps/iso_encode.ps 4 lib/ps 3 lib/scripts/papyrus-keys.tcl 5 lib/scripts/papyrus-menus.tcl 8 lib/scripts/qwerty-accents.tcl 4 lib/scripts/papyrus-vars.tcl 4 lib/scripts/tclIndex 2 lib/scripts/keys-bindings.tcl 3 lib/scripts/spell.tcl 2 lib/scripts/papyrus-init.tcl 6 lib/scripts/papyrus-debug.tcl 6 lib/scripts/procedures.tcl 44 lib/scripts 100 lib/examples/vic20.xpm 1 lib/examples/def.tcl 1 lib/examples/iso-latin1.tcl 2 lib/examples/ia.tcl 187 lib/examples/amiga.xpm 71 lib/examples/c64.xpm 210 lib/examples/papyrus.xpm 20 lib/examples/COPYING-2.0.tcl 2 lib/examples/texte.tcl 3 lib/examples/commodore.tcl 598 lib/examples 805 lib 2 misc/shortcuts.h 2 misc/env.c 2 misc/env.h 7 misc/shortcuts.c 46 misc/parseAFM.c 12 misc/parseAFM.h 72 misc 1 pixmaps/icopy.xpm 1 pixmaps/icut.xpm 1 pixmaps/ilist.xpm 1 pixmaps/imacro.xpm 1 pixmaps/imargin_add.xpm 1 pixmaps/inew.xpm 91 pixmaps/intro.xpm 1 pixmaps/iopen.xpm 1 pixmaps/ipaste.xpm 2 pixmaps/iprint.xpm 1 pixmaps/isave.xpm 1 pixmaps/ispecial.xpm 1 pixmaps/ispell.xpm 1 pixmaps/justify.xpm 2 pixmaps/landscape.xpm 1 pixmaps/list.xpm 1 pixmaps/macro.xpm 1 pixmaps/margin_sub.xpm 1 pixmaps/new.xpm 1 pixmaps/oblique.xpm 2 pixmaps/open.xpm 2 pixmaps/paste.xpm 2 pixmaps/portrait.xpm 2 pixmaps/print.xpm 4 pixmaps/question.xpm 1 pixmaps/save.xpm 1 pixmaps/underline.xpm 1 pixmaps/bold.xpm 1 pixmaps/center_align.xpm 1 pixmaps/ijustify.xpm 1 pixmaps/num_list.xpm 1 pixmaps/clear.xpm 1 pixmaps/right_align.xpm 1 pixmaps/copy.xpm 1 pixmaps/cut.xpm 1 pixmaps/iright_align.xpm 1 pixmaps/margin_add.xpm 1 pixmaps/special.xpm 1 pixmaps/iunderline.xpm 4 pixmaps/error.xpm 1 pixmaps/icenter_align.xpm 1 pixmaps/ibold.xpm 1 pixmaps/iclear.xpm 1 pixmaps/imargin_sub.xpm 1 pixmaps/left_align.xpm 1 pixmaps/spell.xpm 1 pixmaps/ioblique.xpm 1 pixmaps/ileft_align.xpm 3 pixmaps/icon.xpm 155 pixmaps 4 tcl/commands.h 10 tcl/tclGet.cc 41 tcl/commandsAM.cc 6 tcl/tclMain.c 34 tcl/commandsNZ.cc 11 tcl/tclInit.cc 2 tcl/mytcl.h 2 tcl/tclGet.h 111 tcl 1659 total
Может, просто в тупую начать исправлять каждое предупреждение в надежде, что это поможет?