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

How to solve menu compilation errors when installing BERNESE on Ubuntu?

我正在尝试在 Ubuntu 18.04 上安装伯尔尼 GNSS 软件 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. 

configure.pm 错误不是 运行ning 似乎是由于将脚本从 windows 导出到 linux 我通过安装 http://dos2unix.sourceforge.net/ 和 运行宁dos2unix configure.pm。正确执行配置菜单后。

-解决菜单编译形式:

运行 直接只是 cmenu.pl ,即编译菜单时调用的脚本,它会给出相同的错误,但 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 上的库包含在 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 再次编译菜单并成功编译。