在Ubuntu上安装BERNESE时如何解决菜单编译错误?

时间:2019-09-24 08:55:41

标签: installation install ubuntu-18.04

我正在尝试在Ubuntu 18.04上安装Bernese GNSS Software 5.2。我已经安装了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 :(得分:0)

未运行configure.pm的错误似乎是由于将脚本从Windows导出到Linux所致,我通过安装http://dos2unix.sourceforge.net/并运行dos2unix configure.pm来解决。正确执行配置菜单后。

-要解决编译菜单的问题,

仅运行cmenu.pl(即在编译菜单时调用的脚本)会产生相同的错误,但会从makefile中提供更多详细信息。 它在makefile上缺少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上的lib包含在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-在MENU / MakeFile第19行中添加-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重新编译菜单,并成功编译。