我正在尝试在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.
答案 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
重新编译菜单,并成功编译。