Как устранить ошибки компиляции меню при установке BERNESE в Ubuntu? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь установить Bernese GNSS Software 5.2 на Ubuntu 18.04.Я уже установил Perl 5 и qt4.

setup.sh работает, но компиляция выдает ошибку.

Сначала я выбрал компилятор G95, и он дал меню ошибок и программы FORTRAN, а затем с компилятором GNU и программами FORTRAN скомпилированы хорошо, но меню по-прежнему выдает ошибку.

Также, как только я закрываюsetup.sh Я не могу запустить configure.pm, который запускает меню конфигурации (и запуск setup.sh снова перезаписывает все).

У меня возникает следующая ошибка:

g++: error: .obj/release/menutils.o: No such file or directory
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)

================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
make: [.obj/release/menutils.o] Error 1 (ignored)
g++: error: .obj/release/menutils.o: No such file or directory
make: [menu_tmp] Error 1 (ignored)


'menu_tmp' and 'menu_tmp' are identical (not copied) at /BERN52/GPS/EXE/cmenu.pl line 223. 

1 Ответ

0 голосов
/ 24 сентября 2019

Ошибка configure.pm не запущена из-за экспорта скрипта из windows в linux. Я решаю ее, установив http://dos2unix.sourceforge.net/ и запустив dos2unix configure.pm.После того, как оно правильно выполнило меню конфигурации.

-Для решения формы компиляции меню:

Выполнение непосредственно только cmenu.pl, то есть сценария, который вызывается при компиляции меню, которое даетта же ошибка, но с более подробной информацией из make-файла. В make-файле отсутствует zlib.

/usr/bin/ld: .obj/release/menutils.o: undefined reference to symbol 'compress'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:225: recipe for target 'menu_tmp' failed
make: [menu_tmp] Error 1 (ignored)

================================================================================
Compilation finished
********************************************************************************
ERROR: Compilation not successful!
********************************************************************************
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
collect2: error: ld returned 1 exit status
make: [menu_tmp] Error 1 (ignored)


'menu_tmp' and 'menu_tmp' are identical (not copied) at ./cmenu.pl line 226.

Сначала я попытался включить библиотеку в LIBS в MakeFile, но при компиляции она продолжала давать сбой, потому что каждый раз менял MakeFile.запустить компиляцию и стереть мои изменения.

Вот как я решил и скомпилировал хорошо:

Сначала запустил setup.sh как обычно, установил все и выдал ошибку при компиляции меню.Затем, после запуска dos2unix configure.pm, чтобы я мог получить доступ к меню конфигурации:

1 - Установить zlib

sudo apt-get install libz-dev

2 - По GPS / EXE / cmenu.строка комментария pl 116 (избегайте переделки MakeFile, чтобы наши изменения не были стерты при попытке компиляции)

# system("$qmake -Wall menu.tmp");

3 - в строке 19 MENU / MakeFile добавьте -lz

LIBS = $(SUBLIBS) -L/usr/lib/x86_64-linux-gnu -lQt3Support -lQtGui -lQtNetwork -lQtCore -lpthread -lz

4 - В строках комментариев MENU / MakeFile с 227 по 255, которые также переделывают MakeFile при каждом запуске.

# Makefile: menu.tmp  /usr/share/qt4/mkspecs/linux-g++-64/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \
#       /usr/share/qt4/mkspecs/common/linux.conf \
#       /usr/share/qt4/mkspecs/common/gcc-base.conf \
#       /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \
#       /usr/share/qt4/mkspecs/common/g++-base.conf \
#       /usr/share/qt4/mkspecs/common/g++-unix.conf \
#       /usr/share/qt4/mkspecs/qconfig.pri \
#       /usr/share/qt4/mkspecs/features/qt_functions.prf \
#       /usr/share/qt4/mkspecs/features/qt_config.prf \
#       /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
#       /usr/share/qt4/mkspecs/features/default_pre.prf \
#       /usr/share/qt4/mkspecs/features/release.prf \
#       /usr/share/qt4/mkspecs/features/default_post.prf \
#       /usr/share/qt4/mkspecs/features/shared.prf \
#       /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
#       /usr/share/qt4/mkspecs/features/warn_on.prf \
#       /usr/share/qt4/mkspecs/features/qt.prf \
#       /usr/share/qt4/mkspecs/features/unix/thread.prf \
#       /usr/share/qt4/mkspecs/features/moc.prf \
#       /usr/share/qt4/mkspecs/features/resources.prf \
#       /usr/share/qt4/mkspecs/features/uic.prf \
#       /usr/share/qt4/mkspecs/features/yacc.prf \
#       /usr/share/qt4/mkspecs/features/lex.prf \
#       /usr/share/qt4/mkspecs/features/include_source_dir.prf \
#       /usr/lib/x86_64-linux-gnu/libQt3Support.prl \
#       /usr/lib/x86_64-linux-gnu/libQtGui.prl \
#       /usr/lib/x86_64-linux-gnu/libQtNetwork.prl \
#       /usr/lib/x86_64-linux-gnu/libQtCore.prl
#   $(QMAKE) -Wall -o Makefile menu.tmp

5 - Снова скомпилируйте менюиз configure.pm и успешно скомпилировано.

...