Помогите скомпилировать файл на Си++

Общие вопросы по операционным системам семейства Linux.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Помогите скомпилировать файл на Си++

Сообщение Lexxa »

Помогите скомпелировать файл

Хочу отдельно скомпилировать файл xemc.cc из исходников linuxcnc.
Скопировал все исходные файлы и заголовки в одну папку.

В консоли запускаю gcc xemc.cc
Ругается так:
(для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

/tmp/ccZdH4Jr.o: In function `emcTaskNmlGet()':
xemc.cc:(.text+0x24): undefined reference to `NML::operator new(unsigned int)'
xemc.cc:(.text+0x36): undefined reference to `emc_nmlfile'
xemc.cc:(.text+0x4e): undefined reference to `emcFormat(long, void*, CMS*)'
xemc.cc:(.text+0x56): undefined reference to `RCS_CMD_CHANNEL::RCS_CMD_CHANNEL(int (*)(long, void*, CMS*), char const*, char const*, char const*, int)'
xemc.cc:(.text+0x69): undefined reference to `NML::valid()'
xemc.cc:(.text+0xbb): undefined reference to `NML::operator new(unsigned int)'
xemc.cc:(.text+0xcd): undefined reference to `emc_nmlfile'
xemc.cc:(.text+0xe5): undefined reference to `emcFormat(long, void*, CMS*)'
xemc.cc:(.text+0xed): undefined reference to `RCS_STAT_CHANNEL::RCS_STAT_CHANNEL(int (*)(long, void*, CMS*), char const*, char const*, char const*, int)'
xemc.cc:(.text+0x100): undefined reference to `NML::valid()'
xemc.cc:(.text+0x111): undefined reference to `NML::peek()'
xemc.cc:(.text+0x18a): undefined reference to `NML::operator delete(void*)'
xemc.cc:(.text+0x19e): undefined reference to `NML::operator delete(void*)'
/tmp/ccZdH4Jr.o: In function `emcErrorNmlGet()':
xemc.cc:(.text+0x1d0): undefined reference to `NML::operator new(unsigned int)'
xemc.cc:(.text+0x1ea): undefined reference to `emc_nmlfile'
xemc.cc:(.text+0x202): undefined reference to `nmlErrorFormat(long, void*, CMS*)'
xemc.cc:(.text+0x20a): undefined reference to `NML::NML(int (*)(long, void*, CMS*), char const*, char const*, char const*, int, int)'
xemc.cc:(.text+0x21d): undefined reference to `NML::valid()'
xemc.cc:(.text+0x26a): undefined reference to `NML::operator delete(void*)'
/tmp/ccZdH4Jr.o: In function `updateStatus()':
xemc.cc:(.text+0x2ac): undefined reference to `NML::valid()'
xemc.cc:(.text+0x2d4): undefined reference to `NML::peek()'
/tmp/ccZdH4Jr.o: In function `updateError()':
xemc.cc:(.text+0x31c): undefined reference to `NML::valid()'
xemc.cc:(.text+0x347): undefined reference to `NML::read()'
xemc.cc:(.text+0x385): undefined reference to `NML::get_address()'
xemc.cc:(.text+0x3b9): undefined reference to `NML::get_address()'
xemc.cc:(.text+0x3ed): undefined reference to `NML::get_address()'
xemc.cc:(.text+0x421): undefined reference to `NML::get_address()'
xemc.cc:(.text+0x455): undefined reference to `NML::get_address()'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x486): more undefined references to `NML::get_address()' follow
/tmp/ccZdH4Jr.o: In function `emcCommandWaitDone(int)':
xemc.cc:(.text+0x4de): undefined reference to `etime'
xemc.cc:(.text+0x52b): undefined reference to `esleep'
xemc.cc:(.text+0x530): undefined reference to `etime'
/tmp/ccZdH4Jr.o: In function `sendEstop()':
xemc.cc:(.text+0xb11): undefined reference to `NML::write(NMLmsg&)'
/tmp/ccZdH4Jr.o: In function `sendEstopReset()':
xemc.cc:(.text+0xb59): undefined reference to `NML::write(NMLmsg&)'
/tmp/ccZdH4Jr.o: In function `sendMachineOn()':
xemc.cc:(.text+0xba1): undefined reference to `NML::write(NMLmsg&)'
/tmp/ccZdH4Jr.o: In function `sendMachineOff()':
xemc.cc:(.text+0xbe9): undefined reference to `NML::write(NMLmsg&)'
/tmp/ccZdH4Jr.o: In function `sendManual()':
xemc.cc:(.text+0xc31): undefined reference to `NML::write(NMLmsg&)'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0xc79): more undefined references to `NML::write(NMLmsg&)' follow
/tmp/ccZdH4Jr.o: In function `getColor(_WidgetRec*, unsigned long*, int)':
xemc.cc:(.text+0x17a0): undefined reference to `XtStrings'
xemc.cc:(.text+0x17af): undefined reference to `XtStrings'
xemc.cc:(.text+0x17cf): undefined reference to `XtGetValues'
/tmp/ccZdH4Jr.o: In function `setColor(_WidgetRec*, unsigned long, int)':
xemc.cc:(.text+0x17f9): undefined reference to `XtStrings'
xemc.cc:(.text+0x1804): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x181d): undefined reference to `XtStrings'
xemc.cc:(.text+0x1828): undefined reference to `XtVaSetValues'
/tmp/ccZdH4Jr.o: In function `stringToPixel(_WidgetRec*, char const*, unsigned long*)':
xemc.cc:(.text+0x1868): undefined reference to `XtStrings'
xemc.cc:(.text+0x1877): undefined reference to `XtStrings'
xemc.cc:(.text+0x1882): undefined reference to `XtConvertAndStore'
/tmp/ccZdH4Jr.o: In function `getBorderColor(_WidgetRec*, unsigned long*)':
xemc.cc:(.text+0x18a6): undefined reference to `XtStrings'
xemc.cc:(.text+0x18c6): undefined reference to `XtGetValues'
/tmp/ccZdH4Jr.o: In function `setBorderColor(_WidgetRec*, unsigned long)':
xemc.cc:(.text+0x18ea): undefined reference to `XtStrings'
xemc.cc:(.text+0x18f5): undefined reference to `XtVaSetValues'
/tmp/ccZdH4Jr.o: In function `setLabel(_WidgetRec*, char*)':
xemc.cc:(.text+0x1909): undefined reference to `XtStrings'
xemc.cc:(.text+0x1929): undefined reference to `XtGetValues'
xemc.cc:(.text+0x1940): undefined reference to `XtStrings'
xemc.cc:(.text+0x194b): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x1962): undefined reference to `XtStrings'
xemc.cc:(.text+0x196d): undefined reference to `XtVaSetValues'
/tmp/ccZdH4Jr.o: In function `setProgramText(char*)':
xemc.cc:(.text+0x1996): undefined reference to `XtStrings'
xemc.cc:(.text+0x199e): undefined reference to `XtVaSetValues'
/tmp/ccZdH4Jr.o: In function `highlightProgramText(char*, int)':
xemc.cc:(.text+0x1a1f): undefined reference to `XawTextSetSelection'
/tmp/ccZdH4Jr.o: In function `dialogPopup(_WidgetRec*, void*, void*)':
xemc.cc:(.text+0x1a48): undefined reference to `XtStrings'
xemc.cc:(.text+0x1a57): undefined reference to `XtStrings'
xemc.cc:(.text+0x1a5f): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x1a8a): undefined reference to `XtTranslateCoords'
xemc.cc:(.text+0x1aaa): undefined reference to `XtStrings'
xemc.cc:(.text+0x1ab6): undefined reference to `XtStrings'
xemc.cc:(.text+0x1ac1): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x1ad4): undefined reference to `XtPopup'
/tmp/ccZdH4Jr.o: In function `errorReturnAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x1b18): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `errorDoneCB(_WidgetRec*, void*, void*)':
xemc.cc:(.text+0x1b3c): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `createErrorShell()':
xemc.cc:(.text+0x1b71): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x1b8d): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x1b9d): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0x1bb9): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x1bc9): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x1be5): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x1c09): undefined reference to `XtStrings'
xemc.cc:(.text+0x1c11): undefined reference to `XtAddCallback'
/tmp/ccZdH4Jr.o: In function `destroyErrorShell()':
xemc.cc:(.text+0x1c34): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x1c54): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x1c74): undefined reference to `XtDestroyWidget'
/tmp/ccZdH4Jr.o: In function `popupError(char const*, ...)':
xemc.cc:(.text+0x1d26): undefined reference to `XtStrings'
xemc.cc:(.text+0x1d2e): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x1d62): undefined reference to `XtWindow'
xemc.cc:(.text+0x1d71): undefined reference to `XtDisplay'
xemc.cc:(.text+0x1d8d): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `fileEditorMarkCB(_WidgetRec*, void*, void*)':
xemc.cc:(.text+0x1e55): undefined reference to `XawTextGetInsertionPoint'
/tmp/ccZdH4Jr.o: In function `createFileEditorShell(int)':
xemc.cc:(.text+0x1fd8): undefined reference to `topLevelShellWidgetClass'
xemc.cc:(.text+0x1ff0): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x2004): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x2014): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x2030): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2040): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x205a): undefined reference to `XtStrings'
xemc.cc:(.text+0x206e): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2097): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0x20bf): undefined reference to `XtStrings'
xemc.cc:(.text+0x20db): undefined reference to `XtStrings'
xemc.cc:(.text+0x20fb): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2111): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x2139): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x215d): undefined reference to `XtStrings'
xemc.cc:(.text+0x2165): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x2180): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x2197): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x21ae): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x21e2): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2206): undefined reference to `XtStrings'
xemc.cc:(.text+0x220e): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x2225): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x2259): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x227d): undefined reference to `XtStrings'
xemc.cc:(.text+0x2285): undefined reference to `XtAddCallback'
/tmp/ccZdH4Jr.o: In function `destroyFileEditorShell()':
xemc.cc:(.text+0x22c1): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x22e1): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2301): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2321): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2341): undefined reference to `XtDestroyWidget'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x2361): more undefined references to `XtDestroyWidget' follow
/tmp/ccZdH4Jr.o: In function `doFileEditorDone(int)':
xemc.cc:(.text+0x23ba): undefined reference to `XtStrings'
xemc.cc:(.text+0x23c9): undefined reference to `XtStrings'
xemc.cc:(.text+0x23d1): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x23dc): undefined reference to `XawAsciiSave'
xemc.cc:(.text+0x23e9): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `createToolTableShell()':
xemc.cc:(.text+0x243d): undefined reference to `topLevelShellWidgetClass'
xemc.cc:(.text+0x2455): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x2469): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x2479): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x2495): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x24a5): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x24b5): undefined reference to `tool_table_file'
xemc.cc:(.text+0x24bd): undefined reference to `XtStrings'
xemc.cc:(.text+0x24d1): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x24e7): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0x2507): undefined reference to `tool_table_file'
xemc.cc:(.text+0x250f): undefined reference to `XtStrings'
xemc.cc:(.text+0x252f): undefined reference to `XtStrings'
xemc.cc:(.text+0x254f): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2565): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x258d): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x25b1): undefined reference to `XtStrings'
xemc.cc:(.text+0x25b9): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x25d0): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x2604): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2628): undefined reference to `XtStrings'
xemc.cc:(.text+0x2630): undefined reference to `XtAddCallback'
/tmp/ccZdH4Jr.o: In function `destroyToolTableShell()':
xemc.cc:(.text+0x2657): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2677): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2697): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x26b7): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x26d7): undefined reference to `XtDestroyWidget'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x26f7): more undefined references to `XtDestroyWidget' follow
/tmp/ccZdH4Jr.o: In function `doToolTableDone(int)':
xemc.cc:(.text+0x2730): undefined reference to `XtStrings'
xemc.cc:(.text+0x273f): undefined reference to `XtStrings'
xemc.cc:(.text+0x2747): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x2752): undefined reference to `XawAsciiSave'
xemc.cc:(.text+0x276a): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `createVarFileShell()':
xemc.cc:(.text+0x27be): undefined reference to `topLevelShellWidgetClass'
xemc.cc:(.text+0x27d6): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x27ea): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x27fa): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x2816): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2826): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x283e): undefined reference to `XtStrings'
xemc.cc:(.text+0x2852): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2868): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0x2890): undefined reference to `XtStrings'
xemc.cc:(.text+0x28b0): undefined reference to `XtStrings'
xemc.cc:(.text+0x28d0): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x28e6): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x290e): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x2932): undefined reference to `XtStrings'
xemc.cc:(.text+0x293a): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x2951): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x2985): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x29a9): undefined reference to `XtStrings'
xemc.cc:(.text+0x29b1): undefined reference to `XtAddCallback'
/tmp/ccZdH4Jr.o: In function `destroyVarFileShell()':
xemc.cc:(.text+0x29d8): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x29f8): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2a18): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2a38): undefined reference to `XtDestroyWidget'
xemc.cc:(.text+0x2a58): undefined reference to `XtDestroyWidget'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x2a78): more undefined references to `XtDestroyWidget' follow
/tmp/ccZdH4Jr.o: In function `doVarFileDone(int)':
xemc.cc:(.text+0x2ab1): undefined reference to `XtStrings'
xemc.cc:(.text+0x2ac0): undefined reference to `XtStrings'
xemc.cc:(.text+0x2ac8): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x2ad3): undefined reference to `XawAsciiSave'
xemc.cc:(.text+0x2ae5): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `diagnosticsDoDone()':
xemc.cc:(.text+0x2b09): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `doFileOpenDone()':
xemc.cc:(.text+0x2b41): undefined reference to `XawDialogGetValueString'
xemc.cc:(.text+0x2b74): undefined reference to `XtStrings'
xemc.cc:(.text+0x2b7c): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x2bcc): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `doFileQuitDone()':
xemc.cc:(.text+0x2c7e): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `doFileEditDone()':
xemc.cc:(.text+0x2d82): undefined reference to `XawDialogGetValueString'
xemc.cc:(.text+0x2db5): undefined reference to `XtStrings'
xemc.cc:(.text+0x2dbd): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x2dca): undefined reference to `XtPopdown'
xemc.cc:(.text+0x2e58): undefined reference to `XtWindow'
xemc.cc:(.text+0x2e67): undefined reference to `XtDisplay'
xemc.cc:(.text+0x2e83): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x2ef2): undefined reference to `XtWindow'
xemc.cc:(.text+0x2f01): undefined reference to `XtDisplay'
xemc.cc:(.text+0x2f1d): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x2f55): undefined reference to `XtWindow'
xemc.cc:(.text+0x2f64): undefined reference to `XtDisplay'
xemc.cc:(.text+0x2f80): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `toolSetOffsetDoDone(int)':
xemc.cc:(.text+0x3087): undefined reference to `XtStrings'
xemc.cc:(.text+0x308f): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x30ab): undefined reference to `XtStrings'
xemc.cc:(.text+0x30b3): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x30cf): undefined reference to `XtStrings'
xemc.cc:(.text+0x30d7): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x316c): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `toolSetOffsetUpAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x31eb): undefined reference to `XtStrings'
xemc.cc:(.text+0x31f3): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x3251): undefined reference to `XtStrings'
xemc.cc:(.text+0x3259): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x3276): undefined reference to `XtStrings'
xemc.cc:(.text+0x327e): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x32a8): undefined reference to `XtWindow'
xemc.cc:(.text+0x32b7): undefined reference to `XtDisplay'
xemc.cc:(.text+0x32d3): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `doPosOffsetDone()':
xemc.cc:(.text+0x33e4): undefined reference to `XawDialogGetValueString'
xemc.cc:(.text+0x348a): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `posOffsetUpAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x3501): undefined reference to `XtStrings'
xemc.cc:(.text+0x3509): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x3533): undefined reference to `XtWindow'
xemc.cc:(.text+0x3542): undefined reference to `XtDisplay'
xemc.cc:(.text+0x355e): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `doJogSpeedDone()':
xemc.cc:(.text+0x358f): undefined reference to `XawDialogGetValueString'
xemc.cc:(.text+0x361e): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `doFeedOverrideDone()':
xemc.cc:(.text+0x3651): undefined reference to `XawDialogGetValueString'
xemc.cc:(.text+0x3698): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `helpXemcReturnAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x3715): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `helpAboutReturnAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x372a): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `genericDoneCB(_WidgetRec*, void*, void*)':
xemc.cc:(.text+0x373d): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `downAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x38e4): undefined reference to `XtStrings'
xemc.cc:(.text+0x38ec): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x3916): undefined reference to `XtWindow'
xemc.cc:(.text+0x3925): undefined reference to `XtDisplay'
xemc.cc:(.text+0x3941): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x3a63): undefined reference to `XtStrings'
xemc.cc:(.text+0x3a6b): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x3a95): undefined reference to `XtWindow'
xemc.cc:(.text+0x3aa4): undefined reference to `XtDisplay'
xemc.cc:(.text+0x3ac0): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `mdiReturnAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x3d5d): undefined reference to `XtStrings'
xemc.cc:(.text+0x3d65): undefined reference to `XtVaGetValues'
/tmp/ccZdH4Jr.o: In function `keyPressAction(unsigned int, unsigned int)':
xemc.cc:(.text+0x4211): undefined reference to `XtStrings'
xemc.cc:(.text+0x4219): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x4277): undefined reference to `XtStrings'
xemc.cc:(.text+0x427f): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x429c): undefined reference to `XtStrings'
xemc.cc:(.text+0x42a4): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x42ce): undefined reference to `XtWindow'
xemc.cc:(.text+0x42dd): undefined reference to `XtDisplay'
xemc.cc:(.text+0x42f9): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x432e): undefined reference to `XtStrings'
xemc.cc:(.text+0x4336): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x4360): undefined reference to `XtWindow'
xemc.cc:(.text+0x436f): undefined reference to `XtDisplay'
xemc.cc:(.text+0x438b): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x43c0): undefined reference to `XtStrings'
xemc.cc:(.text+0x43c8): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x43f2): undefined reference to `XtWindow'
xemc.cc:(.text+0x4401): undefined reference to `XtDisplay'
xemc.cc:(.text+0x441d): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x4452): undefined reference to `XtStrings'
xemc.cc:(.text+0x445a): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x4484): undefined reference to `XtWindow'
xemc.cc:(.text+0x4493): undefined reference to `XtDisplay'
xemc.cc:(.text+0x44af): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x44f1): undefined reference to `XtWindow'
xemc.cc:(.text+0x4500): undefined reference to `XtDisplay'
xemc.cc:(.text+0x451c): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x4667): undefined reference to `XtWindow'
xemc.cc:(.text+0x4676): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4692): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x46c1): undefined reference to `XtWindow'
xemc.cc:(.text+0x46d0): undefined reference to `XtDisplay'
xemc.cc:(.text+0x46ec): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `keyAction(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x4ac8): undefined reference to `etime'
/tmp/ccZdH4Jr.o: In function `fileMenuSelect(_WidgetRec*, void*, void*)':
xemc.cc:(.text+0x4b38): undefined reference to `XtWindow'
xemc.cc:(.text+0x4b47): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4b63): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x4b92): undefined reference to `XtWindow'
xemc.cc:(.text+0x4ba1): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4bbd): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x4bf0): undefined reference to `XtWindow'
xemc.cc:(.text+0x4bff): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4c1b): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `viewMenuSelect(_WidgetRec*, void*, void*)':
xemc.cc:(.text+0x4c9f): undefined reference to `XtWindow'
xemc.cc:(.text+0x4cae): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4cca): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x4cfe): undefined reference to `XtWindow'
xemc.cc:(.text+0x4d0d): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4d29): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x4d98): undefined reference to `XtWindow'
xemc.cc:(.text+0x4da7): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4dc3): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `helpMenuSelect(_WidgetRec*, void*, void*)':
xemc.cc:(.text+0x4e76): undefined reference to `XtWindow'
xemc.cc:(.text+0x4e85): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4ea1): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0x4ecd): undefined reference to `XtWindow'
xemc.cc:(.text+0x4edc): undefined reference to `XtDisplay'
xemc.cc:(.text+0x4ef8): undefined reference to `XSetWMProtocols'
/tmp/ccZdH4Jr.o: In function `enableAuxMenus(char)':
xemc.cc:(.text+0x509a): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x50af): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x50c4): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x50d9): undefined reference to `XtSetSensitive'
/tmp/ccZdH4Jr.o: In function `enableManualMenus(char)':
xemc.cc:(.text+0x5111): undefined reference to `XtSetSensitive'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x5126): more undefined references to `XtSetSensitive' follow
/tmp/ccZdH4Jr.o: In function `enableMdiMenus(char)':
xemc.cc:(.text+0x527d): undefined reference to `XtSetKeyboardFocus'
xemc.cc:(.text+0x5294): undefined reference to `XtSetKeyboardFocus'
/tmp/ccZdH4Jr.o: In function `timeoutCB(void*, unsigned long*)':
xemc.cc:(.text+0x52c3): undefined reference to `etime'
xemc.cc:(.text+0x5f02): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x5f17): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x5f5a): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x5f6f): undefined reference to `XtSetSensitive'
xemc.cc:(.text+0x5fa0): undefined reference to `XtSetSensitive'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x5fb5): more undefined references to `XtSetSensitive' follow
/tmp/ccZdH4Jr.o: In function `timeoutCB(void*, unsigned long*)':
xemc.cc:(.text+0x69f4): undefined reference to `XtStrings'
xemc.cc:(.text+0x69fc): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x7071): undefined reference to `XtDisplay'
xemc.cc:(.text+0x7079): undefined reference to `XFlush'
xemc.cc:(.text+0x70a8): undefined reference to `XtAppAddTimeOut'
/tmp/ccZdH4Jr.o: In function `fileOpenShellProtocols(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x70e3): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `fileQuitShellProtocols(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x70f8): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `fileEditShellProtocols(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x710d): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `fileEditorShellProtocols(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x7122): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o: In function `toolTableShellProtocols(_WidgetRec*, _XEvent*, char**, unsigned int*)':
xemc.cc:(.text+0x713c): undefined reference to `XtPopdown'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x7156): more undefined references to `XtPopdown' follow
/tmp/ccZdH4Jr.o: In function `setupMenu(_WidgetRec**, char const*, char const**, _WidgetRec*, _WidgetRec*, _WidgetRec*, void (*)(_WidgetRec*, void*, void*))':
xemc.cc:(.text+0x7231): undefined reference to `operator new(unsigned int)'
xemc.cc:(.text+0x7249): undefined reference to `menuButtonWidgetClass'
xemc.cc:(.text+0x7285): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x7296): undefined reference to `menuButtonWidgetClass'
xemc.cc:(.text+0x72c3): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x72d7): undefined reference to `menuButtonWidgetClass'
xemc.cc:(.text+0x7304): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x7312): undefined reference to `menuButtonWidgetClass'
xemc.cc:(.text+0x7330): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x7341): undefined reference to `simpleMenuWidgetClass'
xemc.cc:(.text+0x735d): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x73a5): undefined reference to `smeLineObjectClass'
xemc.cc:(.text+0x73c8): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x73db): undefined reference to `XtStrings'
xemc.cc:(.text+0x73e3): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x73f3): undefined reference to `smeBSBObjectClass'
xemc.cc:(.text+0x7416): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x7429): undefined reference to `XtStrings'
xemc.cc:(.text+0x7431): undefined reference to `XtAddCallback'
/tmp/ccZdH4Jr.o: In function `iniLoad(char const*)':
xemc.cc:(.text+0x75a5): undefined reference to `IniFile::IniFile(int, _IO_FILE*)'
xemc.cc:(.text+0x76db): undefined reference to `IniFile::Open(char const*)'
xemc.cc:(.text+0x771a): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x7778): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x7802): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x781e): undefined reference to `emc_debug'
xemc.cc:(.text+0x7844): undefined reference to `emc_debug'
xemc.cc:(.text+0x7850): undefined reference to `emc_debug'
xemc.cc:(.text+0x7882): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x78a7): undefined reference to `emc_nmlfile'
xemc.cc:(.text+0x78da): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x78ff): undefined reference to `tool_table_file'
xemc.cc:(.text+0x790c): undefined reference to `tool_table_file'
xemc.cc:(.text+0x7916): undefined reference to `tool_table_file'
xemc.cc:(.text+0x7920): undefined reference to `tool_table_file'
xemc.cc:(.text+0x794f): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x79ce): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x79ea): undefined reference to `traj_default_velocity'
xemc.cc:(.text+0x7a12): undefined reference to `traj_default_velocity'
xemc.cc:(.text+0x7a1c): undefined reference to `traj_default_velocity'
xemc.cc:(.text+0x7a22): undefined reference to `traj_default_velocity'
xemc.cc:(.text+0x7a93): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x7aaf): undefined reference to `traj_max_velocity'
xemc.cc:(.text+0x7adb): undefined reference to `traj_max_velocity'
xemc.cc:(.text+0x7ae9): undefined reference to `traj_max_velocity'
xemc.cc:(.text+0x7aef): undefined reference to `traj_max_velocity'
xemc.cc:(.text+0x7b60): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x7bb8): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x7c2f): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x7ca9): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
xemc.cc:(.text+0x7dab): undefined reference to `IniFile::Find(char const*, char const*, int, int*)'
/tmp/ccZdH4Jr.o:xemc.cc:(.text+0x7eef): more undefined references to `IniFile::Find(char const*, char const*, int, int*)' follow
/tmp/ccZdH4Jr.o: In function `iniLoad(char const*)':
xemc.cc:(.text+0x8149): undefined reference to `IniFile::Close()'
/tmp/ccZdH4Jr.o: In function `main':
xemc.cc:(.text+0x81cc): undefined reference to `emcGetArgs'
xemc.cc:(.text+0x81e9): undefined reference to `set_print_rcs_error_info'
xemc.cc:(.text+0x81f5): undefined reference to `print_rcs_error_new'
xemc.cc:(.text+0x8208): undefined reference to `emc_inifile'
xemc.cc:(.text+0x8212): undefined reference to `emc_debug'
xemc.cc:(.text+0x8225): undefined reference to `set_rcs_print_destination'
xemc.cc:(.text+0x822a): undefined reference to `etime'
xemc.cc:(.text+0x8258): undefined reference to `esleep'
xemc.cc:(.text+0x825d): undefined reference to `etime'
xemc.cc:(.text+0x8277): undefined reference to `emc_debug'
xemc.cc:(.text+0x828a): undefined reference to `set_rcs_print_destination'
xemc.cc:(.text+0x82a5): undefined reference to `set_print_rcs_error_info'
xemc.cc:(.text+0x82b1): undefined reference to `print_rcs_error_new'
xemc.cc:(.text+0x82c2): undefined reference to `emc_debug'
xemc.cc:(.text+0x82d5): undefined reference to `set_rcs_print_destination'
xemc.cc:(.text+0x82da): undefined reference to `etime'
xemc.cc:(.text+0x8308): undefined reference to `esleep'
xemc.cc:(.text+0x830d): undefined reference to `etime'
xemc.cc:(.text+0x8327): undefined reference to `emc_debug'
xemc.cc:(.text+0x833a): undefined reference to `set_rcs_print_destination'
xemc.cc:(.text+0x8355): undefined reference to `set_print_rcs_error_info'
xemc.cc:(.text+0x8361): undefined reference to `print_rcs_error_new'
xemc.cc:(.text+0x8417): undefined reference to `XtVaAppInitialize'
xemc.cc:(.text+0x8427): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x8443): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8453): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x846f): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x857f): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x85a7): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x85c9): undefined reference to `XtStrings'
xemc.cc:(.text+0x85d1): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x85e2): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x860a): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8669): undefined reference to `XtStrings'
xemc.cc:(.text+0x8671): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x86d1): undefined reference to `XtStrings'
xemc.cc:(.text+0x86d9): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x8735): undefined reference to `XtStrings'
xemc.cc:(.text+0x873d): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x879f): undefined reference to `XtStrings'
xemc.cc:(.text+0x87a7): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x87b8): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x87e0): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8835): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x885d): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x887f): undefined reference to `XtStrings'
xemc.cc:(.text+0x888f): undefined reference to `XtStrings'
xemc.cc:(.text+0x889f): undefined reference to `XtStrings'
xemc.cc:(.text+0x88a7): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x88c4): undefined reference to `XtStrings'
xemc.cc:(.text+0x88cc): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x88e9): undefined reference to `XtStrings'
xemc.cc:(.text+0x88f1): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x8984): undefined reference to `XtStrings'
xemc.cc:(.text+0x898c): undefined reference to `XtVaSetValues'
xemc.cc:(.text+0x89a9): undefined reference to `XtStrings'
xemc.cc:(.text+0x89b1): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x89bc): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x89d4): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x89e8): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x89f8): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0x8a10): undefined reference to `XtStrings'
xemc.cc:(.text+0x8a24): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8a34): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x8a50): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8a74): undefined reference to `XtStrings'
xemc.cc:(.text+0x8a7c): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x8a87): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x8aa3): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8ac7): undefined reference to `XtStrings'
xemc.cc:(.text+0x8acf): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x8ada): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x8af2): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x8b06): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x8b16): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0x8b2e): undefined reference to `XtStrings'
xemc.cc:(.text+0x8b42): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8b52): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x8b6e): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8b92): undefined reference to `XtStrings'
xemc.cc:(.text+0x8b9a): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x8ba5): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x8bc1): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8be5): undefined reference to `XtStrings'
xemc.cc:(.text+0x8bed): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x8bf8): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x8c10): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x8c24): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x8c34): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0x8c50): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8c60): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x8c7c): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8ca0): undefined reference to `XtStrings'
xemc.cc:(.text+0x8ca8): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x8cb3): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x8ccf): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8cf3): undefined reference to `XtStrings'
xemc.cc:(.text+0x8cfb): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x8d06): undefined reference to `topLevelShellWidgetClass'
xemc.cc:(.text+0x8d1e): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x8d32): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x8d42): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x8d5e): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8d6e): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8d86): undefined reference to `XtStrings'
xemc.cc:(.text+0x8d9a): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8db0): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8dc8): undefined reference to `XtStrings'
xemc.cc:(.text+0x8de8): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8e04): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8e38): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8e4e): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8e66): undefined reference to `XtStrings'
xemc.cc:(.text+0x8e86): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8ea2): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8ed6): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8eec): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8f04): undefined reference to `XtStrings'
xemc.cc:(.text+0x8f24): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8f40): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8f74): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8f8a): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x8fa2): undefined reference to `XtStrings'
xemc.cc:(.text+0x8fc2): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x8fde): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9012): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9028): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x9050): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9072): undefined reference to `XtStrings'
xemc.cc:(.text+0x907a): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x9085): undefined reference to `topLevelShellWidgetClass'
xemc.cc:(.text+0x909d): undefined reference to `XtShellStrings'
xemc.cc:(.text+0x90b1): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x90c1): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x90dd): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x90ed): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9109): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x911f): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0x9157): undefined reference to `XtStrings'
xemc.cc:(.text+0x9177): undefined reference to `XtStrings'
xemc.cc:(.text+0x9197): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x91ad): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x91d5): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x91f9): undefined reference to `XtStrings'
xemc.cc:(.text+0x9201): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x920c): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x9228): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x9238): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0x9254): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9264): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x9280): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x92a4): undefined reference to `XtStrings'
xemc.cc:(.text+0x92ac): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x92bd): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x92e5): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x92f5): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9311): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9327): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x934f): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9365): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x938d): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x939d): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x93b9): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x93cf): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x93f7): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9407): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x9423): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x9433): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x944f): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x945f): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9477): undefined reference to `XtStrings'
xemc.cc:(.text+0x948b): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x94a1): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0x94b9): undefined reference to `XtStrings'
xemc.cc:(.text+0x94d9): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x94ef): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9507): undefined reference to `XtStrings'
xemc.cc:(.text+0x9527): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9543): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0x955b): undefined reference to `XtStrings'
xemc.cc:(.text+0x9587): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x959d): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x95b5): undefined reference to `XtStrings'
xemc.cc:(.text+0x95d5): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x95f1): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0x9609): undefined reference to `XtStrings'
xemc.cc:(.text+0x9635): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x964b): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x9673): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x968f): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x96c3): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x96e5): undefined reference to `XtStrings'
xemc.cc:(.text+0x96ed): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x970a): undefined reference to `XtStrings'
xemc.cc:(.text+0x9712): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x9729): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x975d): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x976d): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9789): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x979f): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x97c7): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x97e3): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x9817): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9827): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9843): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9859): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9881): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x98c7): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x98ef): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9911): undefined reference to `XtStrings'
xemc.cc:(.text+0x9921): undefined reference to `XtStrings'
xemc.cc:(.text+0x9929): undefined reference to `XtVaGetValues'
xemc.cc:(.text+0x9950): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9964): undefined reference to `XtStrings'
xemc.cc:(.text+0x9970): undefined reference to `XtStrings'
xemc.cc:(.text+0x9990): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9a22): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x9a42): undefined reference to `XtStrings'
xemc.cc:(.text+0x9a4e): undefined reference to `XtStrings'
xemc.cc:(.text+0x9a62): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9a84): undefined reference to `XtStrings'
xemc.cc:(.text+0x9a8c): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x9a97): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x9ab3): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x9ac3): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0x9adf): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9af5): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x9b1d): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9b2d): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9b49): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9b5f): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9b87): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9ba3): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9bd7): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9bf3): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9c27): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9c37): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0x9c53): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0x9c63): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0x9c7f): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9c9b): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x9ccf): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9cdf): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9cfb): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9d56): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x9d8a): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9d9a): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9db6): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9dcc): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9df4): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9e10): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0x9e44): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9e66): undefined reference to `XtStrings'
xemc.cc:(.text+0x9e6e): undefined reference to `XtAddCallback'
xemc.cc:(.text+0x9e85): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9eb9): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9ed5): undefined reference to `formWidgetClass'
xemc.cc:(.text+0x9f09): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9f19): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9f35): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9f4b): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9f73): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9f8f): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0x9fc3): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0x9fdf): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0xa013): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa023): undefined reference to `transientShellWidgetClass'
xemc.cc:(.text+0xa03f): undefined reference to `XtVaCreatePopupShell'
xemc.cc:(.text+0xa04f): undefined reference to `dialogWidgetClass'
xemc.cc:(.text+0xa06b): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa081): undefined reference to `formWidgetClass'
xemc.cc:(.text+0xa0a9): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa0b9): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0xa0d5): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa0eb): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0xa103): undefined reference to `XtStrings'
xemc.cc:(.text+0xa123): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa139): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0xa161): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa177): undefined reference to `formWidgetClass'
xemc.cc:(.text+0xa19f): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa1af): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0xa1cb): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa1e1): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0xa209): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa21f): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0xa247): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa25d): undefined reference to `labelWidgetClass'
xemc.cc:(.text+0xa285): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa29b): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0xa2c3): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa2e7): undefined reference to `XtStrings'
xemc.cc:(.text+0xa2ef): undefined reference to `XtAddCallback'
xemc.cc:(.text+0xa306): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0xa33a): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa35c): undefined reference to `XtStrings'
xemc.cc:(.text+0xa364): undefined reference to `XtAddCallback'
xemc.cc:(.text+0xa37b): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0xa3af): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa3d1): undefined reference to `XtStrings'
xemc.cc:(.text+0xa3d9): undefined reference to `XtAddCallback'
xemc.cc:(.text+0xa3f0): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0xa424): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa446): undefined reference to `XtStrings'
xemc.cc:(.text+0xa44e): undefined reference to `XtAddCallback'
xemc.cc:(.text+0xa465): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0xa499): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa4bb): undefined reference to `XtStrings'
xemc.cc:(.text+0xa4c3): undefined reference to `XtAddCallback'
xemc.cc:(.text+0xa4da): undefined reference to `commandWidgetClass'
xemc.cc:(.text+0xa50e): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa530): undefined reference to `XtStrings'
xemc.cc:(.text+0xa538): undefined reference to `XtAddCallback'
xemc.cc:(.text+0xa549): undefined reference to `asciiTextWidgetClass'
xemc.cc:(.text+0xa571): undefined reference to `XtVaCreateManagedWidget'
xemc.cc:(.text+0xa593): undefined reference to `XtAppAddActions'
xemc.cc:(.text+0xa5a0): undefined reference to `XtRealizeWidget'
xemc.cc:(.text+0xa5ad): undefined reference to `XtDisplay'
xemc.cc:(.text+0xa5c5): undefined reference to `XInternAtom'
xemc.cc:(.text+0xa7eb): undefined reference to `XtAppAddTimeOut'
xemc.cc:(.text+0xa7f8): undefined reference to `XtWindow'
xemc.cc:(.text+0xa807): undefined reference to `XtDisplay'
xemc.cc:(.text+0xa823): undefined reference to `XSetWMProtocols'
xemc.cc:(.text+0xa830): undefined reference to `XtAppMainLoop'
/tmp/ccZdH4Jr.o: In function `RCS_STAT_CHANNEL::get_address()':
xemc.cc:(.text._ZN16RCS_STAT_CHANNEL11get_addressEv[RCS_STAT_CHANNEL::get_address()]+0xd): undefined reference to `NML::get_address()'
/tmp/ccZdH4Jr.o: In function `EMC_AXIS_CMD_MSG::EMC_AXIS_CMD_MSG(long, unsigned int)':
xemc.cc:(.text._ZN16EMC_AXIS_CMD_MSGC2Elj[_ZN16EMC_AXIS_CMD_MSGC5Elj]+0x1b): undefined reference to `RCS_CMD_MSG::RCS_CMD_MSG(long, long)'
/tmp/ccZdH4Jr.o: In function `EMC_TRAJ_CMD_MSG::EMC_TRAJ_CMD_MSG(long, unsigned int)':
xemc.cc:(.text._ZN16EMC_TRAJ_CMD_MSGC2Elj[_ZN16EMC_TRAJ_CMD_MSGC5Elj]+0x1b): undefined reference to `RCS_CMD_MSG::RCS_CMD_MSG(long, long)'
/tmp/ccZdH4Jr.o: In function `EMC_TASK_CMD_MSG::EMC_TASK_CMD_MSG(long, unsigned int)':
xemc.cc:(.text._ZN16EMC_TASK_CMD_MSGC2Elj[_ZN16EMC_TASK_CMD_MSGC5Elj]+0x1b): undefined reference to `RCS_CMD_MSG::RCS_CMD_MSG(long, long)'
/tmp/ccZdH4Jr.o: In function `EMC_TOOL_CMD_MSG::EMC_TOOL_CMD_MSG(long, unsigned int)':
xemc.cc:(.text._ZN16EMC_TOOL_CMD_MSGC2Elj[_ZN16EMC_TOOL_CMD_MSGC5Elj]+0x1b): undefined reference to `RCS_CMD_MSG::RCS_CMD_MSG(long, long)'
/tmp/ccZdH4Jr.o: In function `EMC_SPINDLE_CMD_MSG::EMC_SPINDLE_CMD_MSG(long, unsigned int)':
xemc.cc:(.text._ZN19EMC_SPINDLE_CMD_MSGC2Elj[_ZN19EMC_SPINDLE_CMD_MSGC5Elj]+0x1b): undefined reference to `RCS_CMD_MSG::RCS_CMD_MSG(long, long)'
/tmp/ccZdH4Jr.o:xemc.cc:(.text._ZN19EMC_COOLANT_CMD_MSGC2Elj[_ZN19EMC_COOLANT_CMD_MSGC5Elj]+0x1b): more undefined references to `RCS_CMD_MSG::RCS_CMD_MSG(long, long)' follow
/tmp/ccZdH4Jr.o: In function `IniFile::~IniFile()':
xemc.cc:(.text._ZN7IniFileD2Ev[_ZN7IniFileD5Ev]+0xd): undefined reference to `IniFile::Close()'
/tmp/ccZdH4Jr.o:(.eh_frame+0x4cb): undefined reference to `__gxx_personality_v0'
collect2: выполнение ld завершилось с кодом возврата 1
lexxa@lexxa-laptop:~/linuxcnc/2.6.11.turn/linuxcnc-b4e7be3/src/emc/usr_intf/halui_ui/123$ 
Как быть?
В прицепе вся папка с файлами.
Вложения
123.zip
(1.12 МБ) 392 скачивания
:bender:
netraider
Мастер
Сообщения: 209
Зарегистрирован: 23 май 2015, 10:47
Репутация: 49
Настоящее имя: Юрий
Откуда: Москва
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение netraider »

Под Linux не пишу, но здесь концептуальная проблема:
xemc.cc скомпилировался успешно (ошибок компиляции нет), но при линковке возникли ошибки, и вполне ожидаемые - gcc не может найти реализацию функций, ссылки на которые есть (прямо или косвенно) в xemc.cc. Реализация этих функций находится в других *.c/*.cc файлах. Поэтому сначала эти файлы необходимо откомпилировать и получить объектные файлы, а потом слинковать все вместе (здесь есть детали - https://www.gnu.org/software/libtool/ma ... files.html)

Есть еще вариант (т.н. unity build, обычно используется для ускорения компиляции) - создать новый, пустой *.c файл, включить в него все *.c/*.cc с помощью '#include' (хотя можно все включить и в xemc.cc) и скормить его gcc. В этом случае никаких промежуточных шагов по созданию объектных файлов делать не нужно, поскольку фактически весь код будет находится в одном файле, а не разбит на несколько. Но для того, чтобы это сработало, *.c/*.cc должны удовлетворять некоторым условиям, поэтому этот вариант может и не сработать.
--
At the nanometer level, the world is made of rubber (с)
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Lexxa »

Так, логика я так понимаю такая.
1) компилируются xemc в объектный файл;
2) компилируются используемые библиотеки в объектные файлы
3) линкуются объектные файлы библиотек и объектный файл xemc.
На выходе линковщика получаем бинарник xemc.

Упростим задачу сборки объектных файлов библиотек использовав выполнив в штатной папке с исходниками команду make
В итоге скомпилируется и слинкуется всё, включая xemc.

Затем, если опять собрать все объектные файлы в одну папку и запустить
gcc xemc.o нужные.о должен получиться бинарник, так?
:bender:
netraider
Мастер
Сообщения: 209
Зарегистрирован: 23 май 2015, 10:47
Репутация: 49
Настоящее имя: Юрий
Откуда: Москва
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение netraider »

Lexxa писал(а):Так, логика я так понимаю такая.
1) компилируются xemc в объектный файл;
2) компилируются используемые библиотеки в объектные файлы
3) линкуются объектные файлы библиотек и объектный файл xemc.
На выходе линковщика получаем бинарник xemc.
Возможно на практике последовательность немного другая, но так тоже все верно.
Lexxa писал(а): Упростим задачу сборки объектных файлов библиотек использовав выполнив в штатной папке с исходниками команду make
В итоге скомпилируется и слинкуется всё, включая xemc.
Да. Теоретически правда make может и поудалять *.o файлы перед завершением работы (если там явно в makefile так будет сделано для экономии дискового пространства), т.к. фактически это результаты промежуточного этапа, но это маловероятно.
Lexxa писал(а):Затем, если опять собрать все объектные файлы в одну папку и запустить
gcc xemc.o нужные.о должен получиться бинарник, так?
Да.
--
At the nanometer level, the world is made of rubber (с)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Serg »

Почему просто из полного комплекта не взять готовые xemc и библиотеки, которые он загружает при работе?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Lexxa »

UAVpilot, Библиотеки это .so.0 файлы?
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Serg »

Lexxa писал(а):UAVpilot, Библиотеки это .so.0 файлы?
Да.

Команда "ldd xemc" покажет какие нужны.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Lexxa »

А хэдеры как вывести?
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Serg »

Lexxa писал(а):А хэдеры как вывести?
Только поиском по тексту и т.п.

ldd не показывает библиотеки, которые нужны при компиляции, она показывает разделяемые библиотеки, с использованием которых программа скомпилирована и слинкована.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Lexxa »

Допустим, что компилируется xemc вот такой командой из makefile

Код: Выделить всё

ifeq "$(HAVE_XAW)" "yes"
$(call TOOBJSDEPS,$(XEMCSRCS)): EXTRAFLAGS = $(CFLAGS_X)
../bin/xlinuxcnc: $(call TOOBJS, $(XEMCSRCS)) ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $(ULFLAGS) $^ $(XLIBS)
TARGETS += ../bin/xlinuxcnc
endif
ldd показывает только подключаемые динамические библиотеки.
Т.е. xemc использует динамические библиотеки libnml.so.0, liblinuxcncini.so.0 и статическую liblinuxcnc.a.
Хорошо.
Теперь, допустим, создаем проект в QT Creator и подключаем эти три библиотеки к проекту.
теперь чтобы использовать функции, скомпилированные в эти библиотеки нужно заинклудить хэдеры, в которых эти функции прописаны?

Например, чтобы использовать функции из liblinuxcncini.so.0 нужно инклудить все хэдеры, которые он использует?
Если я понял правильно из
Submakefile (для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

INCLUDES += libnml/inifile

../include/%.h: ./libnml/inifile/%.h
	cp $^ $@
../include/%.hh: ./libnml/inifile/%.hh
	cp $^ $@

LIBINISRCS := libnml/inifile/inifile.cc
$(call TOOBJSDEPS, $(LIBINISRCS)) : EXTRAFLAGS=-fPIC

INIFILESRCS := libnml/inifile/inivar.cc

USERSRCS += $(INIFILESRCS) $(LIBINISRCS)
TARGETS += ../lib/liblinuxcncini.so ../lib/liblinuxcncini.so.0 

../lib/liblinuxcncini.so.0: $(call TOOBJS,$(LIBINISRCS))
	$(ECHO) Creating shared library $(notdir $@)
	@mkdir -p ../lib
	@rm -f $@
	$(Q)$(CXX) $(LDFLAGS) -Wl,-soname,$(notdir $@) -shared -o $@ $^

../bin/inivar: $(call TOOBJS, $(INIFILESRCS)) ../lib/liblinuxcncini.so.0
	$(ECHO) Linking $(notdir $@)
	$(Q)$(CXX) $(LDFLAGS) -o $@ $^ 
TARGETS += ../bin/inivar
то т.о. для сборки liblinuxcncini.so.0 используется исходник inifile.cc со всеми хэдерами из /libnml/inifile/ т.е. inifile.h и inifile.hh.

В остатке.
Чтобы использовать функции из liblinuxcncini.so.0 в стороннем проекте в этот проект нужно
а) добавить библиотеку liblinuxcncini.so.0
б) подключить хэдеры inifile.h и inifile.hh
в) в файлах исходных текстов проекта, где требуется вызов этих функций прописать #include inifile.h и #include inifile.hh.

Я правильно понял все?
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Serg »

Неправильно. Файлы, нужные для компиляции inifile.cc указаны в нём самом:

Код: Выделить всё

#include <stdio.h>              /* FILE *, fopen(), fclose(), NULL */
#include <stdlib.h>
#include <string.h>             /* strstr() */
#include <ctype.h>              /* isspace() */
#include <fcntl.h>


#include "config.h"
#include "inifile.hh"
В свою очередь в тех файлах могут быть указания на включение других файлов и т.д.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Lexxa »

Спасибо. Буду ковырять.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Lexxa »

ай нид хэлп.

Создал проект, подключил библиотеки. Запихал переменные и функции в один проект и заинклудил хэдеры, чтоб ниче не ругалось.
в main единственная функция sendEstopReset. При сборке ниче не ругается, все гут.
Запускаю lcnc, запускаю бинарник свой, и lcnc с estop успешно сбрасывается, т.е. моя горе програмаа работает. профит!

Пытаюсь вынести функции во внешний файл.
Создаю в проекте файл хэдер, вставляю в него все инклуды из начального файла, который успешно сбрасывал estop, и так же создаю в нем все прототипы используемых функций.
Создаю в проекте файл сорцев и копирую в него все, что было в начальном файле, т.е. переменные, реализации функций итд.

в файл с функцией main инклужу новый файл хэдеров.
QT creator нормально видит функции из хэдера.
в main единственная функция sendEstopReset().

При сборке ругань на отсутствие sendEstopReset.
ошибка: undefined reference to `sendEstopReset()'
Что я делаю не так?
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Serg »

Библиотеку при линковке не подключил небось...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпелировать файл на Си++

Сообщение Lexxa »

Да вроде этим qmake занимается...

UAVpilot, можешь глянуть проект?
Вложения
test.zip
(7.11 МБ) 394 скачивания
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпилировать файл на Си++

Сообщение Lexxa »

Короче хз, что там было не так, вроде собирается)
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Помогите скомпилировать файл на Си++

Сообщение Serg »

Lexxa писал(а):UAVpilot, можешь глянуть проект?
Не могу, я все эти проекты/креаторы не разумею, я всё больше по стариковски предпочитаю make и Co. :)
Да и с qt как-то не сложилось - не разделяю я её "виндовую" идеологию, мне как-то gtk ближе. :)

Могу только посоветовать сначала постичь суть работы с библиотеками на простых примерах типа "Hello, World!". :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Помогите скомпилировать файл на Си++

Сообщение Lexxa »

Ну вот да, сделал сначала hello world с тремя функциями в трех внешних файлах - работает.
Скопировал в свой проект все по новой - работает)))

единственное, в оригинале функции были объявлены с ключем static, а я их объявил как обычные.
Вроде работает.
:bender:
Ответить

Вернуться в «Прочие вопросы Linux»