Проблема сборки PAPyRUS под OpenBSD 6.2
-
А вот это уже интересно. Я стал закапываться в Makefile и то, что после команд make all остается из объектных файлов нашел следующее:
./callbacks.o ./menus.o ./widgets.o ./modify_text.o ./mainWin.o ./dialogs.o ./actions.o ./init.o ./isfuncs.o ./attributes.o ./main.o ./papyrus_output.o ./container.o ./ps_output.o ./ascii_output.o ./frame.o ./cursor.o ./display.o ./events.o ./page.o ./paragraph.o ./document.o ./line.o ./word.o ./wordSegment.o ./thePosition.o ./image.o ./util.o ./fontManager.o ./fontFamily.o ./styleManager.o ./styleItem.o ./tclMain.o ./tclInit.o ./tclGet.o ./commandsAM.o ./commandsNZ.o ./shortcuts.o ./parseAFM.o ./env.o ./clan.o
И это при том. что в самом Makefile:OBJS = gui/callbacks.o gui/menus.o gui/widgets.o \ gui/modify_text.o gui/mainWin.o gui/dialogs.o \ gui/actions.o gui/init.o kernel/isfuncs.o \ kernel/attributes.o kernel/main.o kernel/papyrus_output.o \ kernel/container.o kernel/ps_output.o kernel/ascii_output.o \ kernel/frame.o kernel/cursor.o kernel/display.o \ kernel/events.o kernel/page.o kernel/paragraph.o \ kernel/document.o kernel/line.o kernel/word.o \ kernel/wordSegment.o kernel/thePosition.o kernel/image.o \ kernel/util.o \ kernel/FontManager/fontManager.o kernel/FontManager/fontFamily.o \ kernel/StyleManager/styleManager.o kernel/StyleManager/styleItem.o \ tcl/tclMain.o tcl/tclInit.o tcl/tclGet.o \ tcl/commandsAM.o tcl/commandsNZ.o \ misc/shortcuts.o misc/parseAFM.o misc/env.o
Несоответствие путей?
Более того, финальная линковка происходит по команде:gcc -o bin/papyrus -L/usr/X11R6/lib -lXm -L/usr/X11R6/lib -L/usr/X11R6/lib -lXmu -lXt -lSM -lICE -lXext
И где, спрашивается, все эти объектные файлы, куда они делись при оной?
Вот, кажется, где собака зарыта. Буду проверять. -
А, Вы мне эту ссылку, ЕМНИП, эту и дали)
-
Вон:
http://ftp.eu.openbsd.org/pub/OpenBSD/7.4/packages/amd64/
Пока только для amd64, как я понял. -
AkhmedSataja:А вот это уже интересно. Я стал закапываться в Makefile и то, что после команд make all остается из объектных файлов нашел следующее:
./callbacks.o ./menus.o ./widgets.o ./modify_text.o ./mainWin.o ./dialogs.o ./actions.o ./init.o ./isfuncs.o ./attributes.o ./main.o ./papyrus_output.o ./container.o ./ps_output.o ./ascii_output.o ./frame.o ./cursor.o ./display.o ./events.o ./page.o ./paragraph.o ./document.o ./line.o ./word.o ./wordSegment.o ./thePosition.o ./image.o ./util.o ./fontManager.o ./fontFamily.o ./styleManager.o ./styleItem.o ./tclMain.o ./tclInit.o ./tclGet.o ./commandsAM.o ./commandsNZ.o ./shortcuts.o ./parseAFM.o ./env.o ./clan.o
И это при том. что в самом Makefile:OBJS = gui/callbacks.o gui/menus.o gui/widgets.o \ gui/modify_text.o gui/mainWin.o gui/dialogs.o \ gui/actions.o gui/init.o kernel/isfuncs.o \ kernel/attributes.o kernel/main.o kernel/papyrus_output.o \ kernel/container.o kernel/ps_output.o kernel/ascii_output.o \ kernel/frame.o kernel/cursor.o kernel/display.o \ kernel/events.o kernel/page.o kernel/paragraph.o \ kernel/document.o kernel/line.o kernel/word.o \ kernel/wordSegment.o kernel/thePosition.o kernel/image.o \ kernel/util.o \ kernel/FontManager/fontManager.o kernel/FontManager/fontFamily.o \ kernel/StyleManager/styleManager.o kernel/StyleManager/styleItem.o \ tcl/tclMain.o tcl/tclInit.o tcl/tclGet.o \ tcl/commandsAM.o tcl/commandsNZ.o \ misc/shortcuts.o misc/parseAFM.o misc/env.o
Несоответствие путей?
Более того, финальная линковка происходит по команде:gcc -o bin/papyrus -L/usr/X11R6/lib -lXm -L/usr/X11R6/lib -L/usr/X11R6/lib -lXmu -lXt -lSM -lICE -lXext
И где, спрашивается, все эти объектные файлы, куда они делись при оной?
Вот, кажется, где собака зарыта. Буду проверять.
Так это Makefile виноват? Никогда бы не подумал что в нем есть ошибки. :O -
Ага, доисправлялся. Теперь такой ужас:
kernel/FontManager/fontFamily.o: In function `FontFamily::~FontFamily()': fontFamily.cc:(.text+0x71): undefined reference to `operator delete(void*)' fontFamily.cc:(.text+0x7c): undefined reference to `operator delete(void*)' kernel/FontManager/fontFamily.o: In function `FontFamily::~FontFamily()': fontFamily.cc:(.text+0xb1): undefined reference to `operator delete(void*)' fontFamily.cc:(.text+0xbc): undefined reference to `operator delete(void*)' kernel/FontManager/fontFamily.o: In function `FontFamily::del_item(int)': fontFamily.cc:(.text+0x140): undefined reference to `operator delete(void*)' kernel/FontManager/fontFamily.o: In function `FontFamily::add_item(_XDisplay*, int)': fontFamily.cc:(.text+0x19c): undefined reference to `operator new(unsigned long)' kernel/StyleManager/styleManager.o: In function `StyleManager::add_style(char*, StyleItem*)': styleManager.cc:(.text+0x109): undefined reference to `operator new(unsigned long)' styleManager.cc:(.text+0x369): undefined reference to `operator delete(void*)' kernel/StyleManager/styleManager.o: In function `StyleManager::del_style(char*)': styleManager.cc:(.text+0x3d4): undefined reference to `operator delete(void*)' kernel/StyleManager/styleItem.o: In function `StyleItem::set_attr(StyleAttrType, void*)': styleItem.cc:(.text+0x166): undefined reference to `operator delete(void*)' styleItem.cc:(.text+0x208): undefined reference to `operator delete(void*)' tcl/tclMain.o: In function `Tcl_MyEval': tclMain.c:(.text+0x27): undefined reference to `Tcl_DStringInit' tclMain.c:(.text+0x3b): undefined reference to `Tcl_DStringAppend' tclMain.c:(.text+0x43): undefined reference to `Tcl_CommandComplete' tclMain.c:(.text+0x61): undefined reference to `Tcl_RecordAndEval' tclMain.c:(.text+0x6b): undefined reference to `Tcl_DStringFree' tclMain.c:(.text+0x95): undefined reference to `Tcl_Eval' tclMain.c:(.text+0xb4): undefined reference to `Tcl_GetStringResult' tcl/tclMain.o: In function `My_Tcl_Main': tclMain.c:(.text+0xff): undefined reference to `Tcl_CreateInterp' tclMain.c:(.text+0x14f): undefined reference to `Tcl_Merge' tclMain.c:(.text+0x17f): undefined reference to `Tcl_SetVar2' tclMain.c:(.text+0x18d): undefined reference to `Tcl_Free' tclMain.c:(.text+0x1d1): undefined reference to `Tcl_SetVar2' tclMain.c:(.text+0x213): undefined reference to `Tcl_SetVar2' tclMain.c:(.text+0x25a): undefined reference to `Tcl_SetVar2' tclMain.c:(.text+0x29a): undefined reference to `Tcl_EvalFile' tclMain.c:(.text+0x2e1): undefined reference to `Tcl_Merge' tclMain.c:(.text+0x311): undefined reference to `Tcl_SetVar2' tclMain.c:(.text+0x31f): undefined reference to `Tcl_Free' tclMain.c:(.text+0x363): undefined reference to `Tcl_SetVar2' tclMain.c:(.text+0x3af): undefined reference to `Tcl_SetVar2' tclMain.c:(.text+0x3e4): undefined reference to `Tcl_GetStringResult' tclMain.c:(.text+0x401): undefined reference to `Tcl_GetStringResult' tclMain.c:(.text+0x446): undefined reference to `Tcl_GetVar2' tclMain.c:(.text+0x46e): undefined reference to `Tcl_TranslateFileName' tclMain.c:(.text+0x4a4): undefined reference to `Tcl_EvalFile' tclMain.c:(.text+0x4be): undefined reference to `Tcl_DStringFree' tclMain.c:(.text+0x4ea): undefined reference to `Tcl_LinkVar' tclMain.c:(.text+0x505): undefined reference to `Tcl_GetStringResult' tclMain.c:(.text+0x51f): undefined reference to `Tcl_GetStringResult' tcl/tclInit.o: In function `Tcl_AppInit': tclInit.cc:(.text+0x29): undefined reference to `Tcl_Init' tclInit.cc:(.text+0x65): undefined reference to `Tcl_CreateCommand' tclInit.cc:(.text+0x8b): undefined reference to `Tcl_CreateCommand' tclInit.cc:(.text+0xc6): undefined reference to `Tcl_SetVar2' tclInit.cc:(.text+0xf0): undefined reference to `Tcl_EvalFile' tclInit.cc:(.text+0x14d): undefined reference to `Tcl_TraceVar2' tclInit.cc:(.text+0x183): undefined reference to `Tcl_TraceVar2' tclInit.cc:(.text+0x1b3): undefined reference to `Tcl_TraceVar2' tclInit.cc:(.text+0x1e3): undefined reference to `Tcl_TraceVar2' tclInit.cc:(.text+0x213): undefined reference to `Tcl_TraceVar2' tcl/tclInit.o:tclInit.cc:(.text+0x243): more undefined references to `Tcl_TraceVar2' follow tcl/tclInit.o: In function `alive_TraceProc(void*, Tcl_Interp*, char*, char*, int)': tclInit.cc:(.text+0x2a0): undefined reference to `Tcl_GetVar2' tclInit.cc:(.text+0x2b3): undefined reference to `Tcl_GetBoolean' tcl/tclInit.o: In function `toolBar_TraceProc(void*, Tcl_Interp*, char*, char*, int)': tclInit.cc:(.text+0x78b): undefined reference to `Tcl_GetVar2' tclInit.cc:(.text+0x7ae): undefined reference to `Tcl_GetVar2'
-
Короче, после компиляции куча объектных файлов по непонятной мне причине валяются в директории с Makefile'ом, вместно того, чтобы быть распределенными по нужным директориям. Когда я ручками отвез их по нужным местам и вновь запустил make all он выдал мне тот треш, что написан выше. С линковкой проблема.
-
Так, вроде, пожар немного удалось локализовать путем добавления в LDFLAGS опции -lstdc++, :
LDFLAGS = -lpcap -lpthread -lstdc++
Теперь проблема с TCL, ибо он не находит с чем слинковаться, но хоть ошибка "Undefined reference to 'operator delete(void*)'", внезапно появившаяся, ушла. Надеюсь, надолго.Script started on Tue Oct 10 15:36:15 2023 $ make all gcc -o bin/papyrus gui/callbacks.o gui/menus.o gui/widgets.o gui/modify_text.o gui/mainWin.o gui/dialogs.o gui/actions.o gui/init.o kernel/isfuncs.o kernel/attributes.o kernel/main.o kernel/papyrus_output.o kernel/container.o kernel/ps_output.o kernel/ascii_output.o kernel/frame.o kernel/cursor.o kernel/display.o kernel/events.o kernel/page.o kernel/paragraph.o kernel/document.o kernel/line.o kernel/word.o kernel/wordSegment.o kernel/thePosition.o kernel/image.o kernel/util.o kernel/FontManager/fontManager.o kernel/FontManager/fontFamily.o kernel/StyleManager/styleManager.o kernel/StyleManager/styleItem.o tcl/tclMain.o tcl/tclInit.o tcl/tclGet.o tcl/commandsAM.o tcl/commandsNZ.o misc/shortcuts.o misc/parseAFM.o misc/env.o -L/usr/X11R6/lib -lXm -L/usr/X11R6/lib -L/usr/X11R6/lib -lXmu -lXt -lSM -lICE -lXext -L/usr/X11R6/lib -lXpm -lX11 -L/usr/local/lib/tcl/tcl8.6 -L/usr/local/lib -L/usr/dt/lib/ -L/usr/X11R6/lib/ -lX11 -L/usr/local/lib/tcl/ -lpcap -lpthread -lstdc++ kernel/ps_output.o:(.data+0x0): multiple definition of `list_c' kernel/main.o:(.data+0x0): first defined here /usr/bin/ld: Warning: size of symbol `list_c' changed from 128 in kernel/main.o to 1024 in kernel/ps_output.o kernel/paragraph.o:(.data+0x0): multiple definition of `list_c' kernel/main.o:(.data+0x0): first defined here /usr/bin/ld: Warning: size of symbol `list_c' changed from 1024 in kernel/main.o to 384 in kernel/paragraph.o kernel/util.o:(.data+0x0): multiple definition of `list_c' kernel/main.o:(.data+0x0): first defined here /usr/bin/ld: Warning: size of symbol `list_c' changed from 384 in kernel/main.o to 1024 in kernel/util.o tcl/tclInit.o:(.data+0x0): multiple definition of `list_c' kernel/main.o:(.data+0x0): first defined here /usr/bin/ld: Warning: size of symbol `list_c' changed from 1024 in kernel/main.o to 9728 in tcl/tclInit.o /usr/local/lib/libXm.so.6.1: warning: warning: wcscat() is almost always misused, please use wcslcat() /usr/local/lib/libXm.so.6.1: warning: warning: wcscpy() is almost always misused, please use wcslcpy() gui/widgets.o: In function `GUI_Add_OptionMenuEntry': gui/widgets.c:1187: warning: warning: strcat() is almost always misused, please use strlcat() gui/callbacks.o: In function `fontSelect_CB': gui/callbacks.c:1482: warning: warning: strcpy() is almost always misused, please use strlcpy() gui/callbacks.o: In function `specialChars_insert_CB': gui/callbacks.c:1641: warning: warning: sprintf() is often misused, please use snprintf() gui/callbacks.o: In function `menu_p0_b1_CB': gui/callbacks.c:258: undefined reference to `Tcl_GetStringResult' gui/callbacks.o: In function `ispell_CB': gui/callbacks.c:259: undefined reference to `Tcl_SplitList' gui/callbacks.o: In function `params_CB': gui/callbacks.c:1154: undefined reference to `Tcl_SetVar2' gui/callbacks.c:1025: undefined reference to `Tcl_SetVar2' gui/callbacks.c:1040: undefined reference to `Tcl_SetVar2' gui/callbacks.c:1048: undefined reference to `Tcl_SetVar2' gui/callbacks.c:1067: undefined reference to `Tcl_SetVar2' gui/callbacks.o:gui/callbacks.c:801: more undefined references to `Tcl_SetVar2' follow gui/callbacks.o: In function `menu_p4_b3_CB': gui/callbacks.c:639: undefined reference to `Tcl_GetVar2' gui/callbacks.c:653: undefined reference to `Tcl_SetVar2' gui/callbacks.c:653: undefined reference to `Tcl_GetVar2' gui/callbacks.c:659: undefined reference to `Tcl_SetVar2' gui/callbacks.o: In function `menu_p4_b1_CB': gui/callbacks.c:594: undefined reference to `Tcl_SetVar2' gui/callbacks.c:608: undefined reference to `Tcl_SetVar2'
-
gui/callbacks.c:587: undefined reference to `Tcl_GetVar2' gui/callbacks.c:595: undefined reference to `Tcl_GetVar2' gui/callbacks.o: In function `menu_p4_b0_CB': gui/callbacks.c:519: undefined reference to `Tcl_GetVar2' gui/callbacks.c:553: undefined reference to `Tcl_GetVar2' gui/callbacks.c:526: undefined reference to `Tcl_GetVar2' gui/callbacks.o:gui/callbacks.c:681: more undefined references to `Tcl_GetVar2' follow gui/callbacks.o: In function `search_CB': callbacks.c:(.text+0x1faf): undefined reference to `Tcl_SetVar2' gui/callbacks.o: In function `optionMenu_CB': callbacks.c:(.text+0x2dac): undefined reference to `Tcl_GetInt' gui/actions.o: In function `Toggle_Activate': gui/actions.c:152: undefined reference to `Tcl_Eval' gui/init.o: In function `GUI_InitInfosDialog': gui/init.c:161: undefined reference to `Tcl_GetVar2' gui/init.c:164: undefined reference to `Tcl_GetVar2' gui/init.o: In function `GUI_InitParamsDialog': gui/init.c:129: undefined reference to `Tcl_GetVar2' gui/init.c:132: undefined reference to `Tcl_GetVar2' gui/init.c:135: undefined reference to `Tcl_GetVar2' gui/init.o:gui/init.c:138: more undefined references to `Tcl_GetVar2' follow kernel/main.o: In function `Init_Papyrus()': main.cc:(.text+0x23f): undefined reference to `Tcl_LinkVar' kernel/papyrus_output.o: In function `Line::output_papyrus()': kernel/papyrus_output.cc:183: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.o: In function `Image::output_papyrus()': kernel/papyrus_output.cc:150: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:150: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:150: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:150: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:150: undefined reference to `Tcl_DStringSetLength' kernel/papyrus_output.cc:151: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:152: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:153: undefined reference to `Tcl_Write' kernel/papyrus_output.o: In function `WordSegment::output_papyrus()': kernel/papyrus_output.cc:91: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:92: undefined reference to `Tcl_DStringAppendElement' kernel/papyrus_output.cc:109: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:109: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:109: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:109: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:109: undefined reference to `Tcl_DStringSetLength' kernel/papyrus_output.cc:110: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:111: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:111: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:111: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:112: undefined reference to `Tcl_DStringSetLength' kernel/papyrus_output.cc:122: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:121: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:86: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:87: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:97: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:98: undefined reference to `Tcl_DStringAppendElement' kernel/papyrus_output.o: In function `Paragraph::output_papyrus()': kernel/papyrus_output.cc:365: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:365: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:365: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:365: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:365: undefined reference to `Tcl_DStringSetLength' kernel/papyrus_output.cc:350: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:351: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:355: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:359: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:341: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:342: undefined reference to `Tcl_DStringAppendElement' kernel/papyrus_output.cc:331: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:332: undefined reference to `Tcl_DStringAppendElement' kernel/papyrus_output.cc:362: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:363: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:358: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:357: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:356: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.o: In function `Document::output_papyrus()': kernel/papyrus_output.cc:222: undefined reference to `Tcl_DStringInit' kernel/papyrus_output.cc:223: undefined reference to `Tcl_DStringInit' kernel/papyrus_output.cc:224: undefined reference to `Tcl_DStringInit' kernel/papyrus_output.cc:228: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:229: undefined reference to `Tcl_DStringAppendElement' kernel/papyrus_output.cc:232: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:233: undefined reference to `Tcl_DStringAppendElement' kernel/papyrus_output.cc:235: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:235: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:235: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:235: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:235: undefined reference to `Tcl_DStringSetLength' kernel/papyrus_output.cc:257: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:257: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:257: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:257: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:257: undefined reference to `Tcl_DStringSetLength' kernel/papyrus_output.cc:258: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:263: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:267: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:267: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:267: undefined reference to `Tcl_DStringAppend' kernel/papyrus_output.cc:267: undefined reference to `Tcl_Write' kernel/papyrus_output.cc:267: undefined reference to `Tcl_DStringSetLength' kernel/papyrus_output.cc:269: undefined reference to `Tcl_DStringFree' kernel/ps_output.o: In function `PS_Page_Footer()': ps_output.cc:(.text+0x255): undefined reference to `Tcl_Write' ps_output.cc:(.text+0x271): undefined reference to `Tcl_Write' kernel/ps_output.o: In function `PS_Document_Footer()': ps_output.cc:(.text+0x2b5): undefined reference to `Tcl_Write'